Skip to main content
Glama

Google Flights MCP Server

by HaroldLeo
Amadeus for Developers.postman_collection.json892 kB
{ "info": { "_postman_id": "27471449-d2ca-a8c4-1399-6b0cfbddd079", "name": "Amadeus for Developers", "description": "Welcome to the Amadeus for Developers collection. This collection features a list of [Amadeus Self-Service APIs](https://developers.amadeus.com/self-service), categorized for your convenience and learning.\n\nThe Self-Service catalog is divided into six categories:\n\n- [<b>Flight APIs</b>](https://developers.amadeus.com/self-service/category/flights) (flight search, flight booking and airport information)\n- [<b>Destination Experiences APIs</b>](https://developers.amadeus.com/self-service/category/destination-experiences) (tours and activities, tourist attractions and safety data)\n- [<b>Cars and Transfers APIs</b>](https://developers.amadeus.com/self-service/category/cars-and-transfers) (transfer search, booking and management)\n- [<b>Market Insights</b>](https://developers.amadeus.com/self-service/category/market-insights) (most booked and traveled destinations, plus location scores)\n- [<b>Hotel APIs</b>](https://developers.amadeus.com/self-service/category/hotels) (hotel search, booking and ratings)\n- [<b>Itinerary Management APIs</b>](https://developers.amadeus.com/self-service/category/itinerary-management) (trip-planning functionalities)\n \n\n## 🛟 Help and support\n\nIf you have any questions of Amadeus Self-Service APIs, please have a look at [Amadeus for Developers Documentation](https://developers.amadeus.com/self-service/apis-docs/guides/developer-guides/) or check out our [discord channel ](https://discord.gg/cVrFBqx) to join the community!", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "11853298", "_collection_link": "https://www.postman.com/amadeus4dev/amadeus-for-developers-s-public-workspace/collection/kquqijj/amadeus-for-developers?action=share&source=collection_link&creator=11853298" }, "item": [ { "name": "Authorization", "item": [ { "name": "Access Granted Client Credentials", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"An access token is returned\", () => {", " pm.expect(pm.response.json()).to.have.property('access_token')", " // Set the collection-scope \"token\" variable to the token received from the API", " // This lets us use it in other requests", " pm.environment.set('access_token', pm.response.json().access_token)", "})", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "client_id", "value": "{{client_id}}", "type": "text" }, { "key": "client_secret", "value": "{{client_secret}}", "type": "text" }, { "key": "grant_type", "value": "client_credentials", "type": "text" } ] }, "url": { "raw": "https://test.api.amadeus.com/v1/security/oauth2/token", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "security", "oauth2", "token" ] }, "description": "To request an access token you need to send a POST request with the following body parameters to the authorization server: \n- \"grant_type\" with the value \"client_credentials\"\n- \"client_id\" with your API Key.\n- \"client_secret\" with your API Secret." }, "response": [] }, { "name": "Get Token Information", "event": [ { "listen": "test", "script": { "exec": [ "// Test", "pm.test(\"The access token is retrieved\", () => {", " pm.expect(pm.response.json()).to.have.property('access_token')", " // Set the collection-scope \"token\" variable to the token received from the API", " // This lets us use it in other requests", " pm.environment.set('access_token', pm.response.json().access_token)", "})", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/security/oauth2/token/{{access_token}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "security", "oauth2", "token", "{{access_token}}" ] }, "description": "Retrieves information about an existing token. The token is passed as URL parameter, for example:\n\n[https://test.api.amadeus.com/v1/security/oauth2/token/AbCdEfGHI123456](https://test.api.amadeus.com/v1/security/oauth2/token/AbCdEfGHI123456)" }, "response": [] } ], "description": "OAuth uses access tokens for accessing APIs. A token represents a permission granted to a client to access some protected resources. The method to acquire a token is called grant.\n\nThere are different types of OAuth grants. Amadeus for Developers uses the Client Credentials Grant.", "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Flights", "item": [ { "name": "(Scenario)Basic Flight Booking flow", "item": [ { "name": "Step 0: Authorization", "event": [ { "listen": "test", "script": { "exec": [ "var data = pm.response.json();", "pm.environment.set(\"access_token\", data.access_token);" ], "type": "text/javascript" } } ], "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "client_id", "value": "{{client_id}}", "type": "text" }, { "key": "client_secret", "value": "{{client_secret}}", "type": "text" }, { "key": "grant_type", "value": "client_credentials", "type": "text" } ] }, "url": { "raw": "https://test.api.amadeus.com/v1/security/oauth2/token", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "security", "oauth2", "token" ] }, "description": "To request an access token you need to send a POST request with the following body parameters to the authorization server: \n- \"grant_type\" with the value \"client_credentials\"\n- \"client_id\" with your API Key.\n- \"client_secret\" with your API Secret." }, "response": [] }, { "name": "Step 1: Flight Offers Search GET", "event": [ { "listen": "test", "script": { "exec": [ "// set 'flightOffer_data' variable", "let response = pm.response.json();", "pm.collectionVariables.set(\"flightOfferData\", JSON.stringify(response.data[0]));", "", "", "// display visualisation", "var template = `", "<span style=\"font-weight: bold;\">Total number of offers : {{response.meta.count}}</span>", "<table>", " {{#each response.data}}", " <tr>", " <td>Offer id : {{id}}</td>", " <td>Source : {{source}}</td>", " <td style=\"font-weight: bold;\">Total price : {{price.total}} {{price.currency}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Segment</th>", " <th>Flight number</th>", " <th>Departure Time</th>", " <th>Arrival Time</th>", " </tr>", " {{#each itineraries}}", " {{#each segments}}", " <tr>", " <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>", " <td>{{carrierCode}} {{number}}</td>", " <td>{{departure.at}}</td>", " <td>{{arrival.at}}</td>", " </tr>", " {{/each}}", " {{/each}}", " <table>", " {{#each travelerPricings}}", " <tr>", " <td>", " Traveler {{travelerId}}-{{travelerType}}</br>", " Amount : {{price.total}} {{price.currency}} </br>", " {{#each price.margins}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}}", " {{#each price.discounts}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}} ", " </td>", " </tr> ", " {{/each}}", " <table>", " </tr>", " <hr />", " {{/each}}", "</table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});" ], "type": "text/javascript", "packages": {} } }, { "listen": "prerequest", "script": { "exec": [ "const moment = require('moment');", "const today = moment(); ", "", "var todayDate = today.format('YYYY-MM-DD'); ", "pm.collectionVariables.set(\"todayDate\", todayDate); ", "", "// 'departureDate' environment variable set to be today + 14 days ", "var twoWeeksLater = moment().add(14, 'days'); ", "pm.collectionVariables.set(\"departureDate\", twoWeeksLater.format('YYYY-MM-DD'));", "", "// 'returnDate' environment variable set to be today + 28 days", "var aMonthLater = moment().add(28, 'days');", "pm.collectionVariables.set(\"returnDate\", aMonthLater.format('YYYY-MM-DD'));" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=PAR&destinationLocationCode=ICN&departureDate={{departureDate}}&returnDate={{returnDate}}&adults=2&max=5", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "shopping", "flight-offers" ], "query": [ { "key": "originLocationCode", "value": "PAR" }, { "key": "destinationLocationCode", "value": "ICN" }, { "key": "departureDate", "value": "{{departureDate}}" }, { "key": "returnDate", "value": "{{returnDate}}" }, { "key": "adults", "value": "2" }, { "key": "includedAirlineCodes", "value": "TG", "disabled": true }, { "key": "max", "value": "5" } ] }, "description": "The Flight Offers Search API allows to get cheapest flight recommendations and prices on a given journey. It provides a list of flight recommendations and fares from a given origin (city or airport), for a given date (or date range) and for a given list of passengers. Additional information such as bag allowance, first ancillary bag prices or fare details are also provided." }, "response": [] }, { "name": "Step 2: Flight Offers Price", "event": [ { "listen": "test", "script": { "exec": [ "// extract 'flightOfferPrice_data' environment variable", "pm.collectionVariables.set(\"flightOfferPriceData\", JSON.stringify(pm.response.json().data.flightOffers[0]));", "", "// display visualisation", "var template = `", " <table bgcolor=\"#FFFFFF\">", " {{#each response.data.flightOffers}}", " <tr>", " <td>offer id : {{id}}</td>", " <td>Source : {{source}}</td>", " <td style=\"font-weight: bold;\">Total amount : {{price.total}} {{price.currency}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Segment</th>", " <th>Flight number</th>", " <th>Departure Time</th>", " <th>Arrival Time</th>", " </tr>", " {{#each itineraries}}", " {{#each segments}}", " <tr>", " <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>", " <td>{{carrierCode}} {{number}}</td>", " <td>{{departure.at}}</td>", " <td>{{arrival.at}}</td>", " </tr>", " {{/each}}", " {{/each}}", " <table>", " {{#each travelerPricings}}", " <tr>", " <td>", " Traveler {{travelerId}}-{{travelerType}}</br>", " Amount : {{price.total}} {{price.currency}} </br>", " {{#each price.margins}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}}", " {{#each price.discounts}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}} ", " </td>", " </tr> ", " {{/each}}", " </table> ", " </tr>", " <hr />", " {{/each}}", " </table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});", "", "", "// display visualisation", "var template = `", " <table bgcolor=\"#FFFFFF\">", " {{#each response.data.flightOffers}}", " <tr>", " <td>offer id : {{id}}</td>", " <td>Source : {{source}}</td>", " <td style=\"font-weight: bold;\">Total amount : {{price.total}} {{price.currency}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Segment</th>", " <th>Flight number</th>", " <th>Departure Time</th>", " <th>Arrival Time</th>", " </tr>", " {{#each itineraries}}", " {{#each segments}}", " <tr>", " <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>", " <td>{{carrierCode}} {{number}}</td>", " <td>{{departure.at}}</td>", " <td>{{arrival.at}}</td>", " </tr>", " {{/each}}", " {{/each}}", " <table>", " {{#each travelerPricings}}", " <tr>", " <td>", " Traveler {{travelerId}}-{{travelerType}}</br>", " Amount : {{price.total}} {{price.currency}} </br>", " {{#each price.margins}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}}", " {{#each price.discounts}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}} ", " </td>", " </tr> ", " {{/each}}", " </table> ", " </tr>", " <hr />", " {{/each}}", " </table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "X-HTTP-Method-Override", "value": "GET" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {{flightOfferData}}\n ]\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/pricing", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-offers", "pricing" ] }, "description": "The Flight Offers Price REST/JSON API is an open price API that enables you to get or confirm the price of a flight and obtain information about taxes and fees to be applied to the entire journey." }, "response": [] }, { "name": "Step 3: Flight Create Orders", "event": [ { "listen": "test", "script": { "exec": [ "// extract 'flightOrderId' environment variable", "let response = pm.response.json();", "pm.collectionVariables.set(\"flightOrderId\", response.data.id);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"flightOffers\": [\n {{flightOfferPriceData}}\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"gender\": \"MALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"documents\": [\n {\n \"documentType\": \"PASSPORT\",\n \"birthPlace\": \"Madrid\",\n \"issuanceLocation\": \"Madrid\",\n \"issuanceDate\": \"2015-04-14\",\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"validityCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"holder\": true\n }\n ]\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO\",\n \"lastName\": \"RODRIGUEZ\"\n },\n \"companyName\": \"INCREIBLE VIAJES\",\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"emailAddress\": \"support@increibleviajes.es\",\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"cityName\": \"Madrid\",\n \"countryCode\": \"ES\"\n }\n }\n ]\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/booking/flight-orders", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "flight-orders" ] }, "description": "The Flight Create Orders is an API to book flights and ancillary services proposed by the airlines like additional checked bags or seats with extra-legroom. It returns flight order unique ID and details." }, "response": [] } ] }, { "name": "Flight Booking", "item": [ { "name": "Flight Offers Search", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code and data type", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "pm.test(\"flight-offers is returned\", function () {", " var data = pm.response.json();", " pm.expect(data.data[0].type).to.equal('flight-offer');", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "", "// extract 'flightOffer_data' into collection variable", "let response = pm.response.json();", "pm.collectionVariables.set('flightOfferData', JSON.stringify(response.data[0]))", "", "// display visualisation", "var template = `", "<span style=\"font-weight: bold;\">Total number of offers : {{response.meta.count}}</span>", "<table>", " {{#each response.data}}", " <tr>", " <td>Offer id : {{id}}</td>", " <td>Source : {{source}}</td>", " <td style=\"font-weight: bold;\">Total price : {{price.total}} {{price.currency}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Segment</th>", " <th>Flight number</th>", " <th>Departure Time</th>", " <th>Arrival Time</th>", " </tr>", " {{#each itineraries}}", " {{#each segments}}", " <tr>", " <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>", " <td>{{carrierCode}} {{number}}</td>", " <td>{{departure.at}}</td>", " <td>{{arrival.at}}</td>", " </tr>", " {{/each}}", " {{/each}}", " <table>", " {{#each travelerPricings}}", " <tr>", " <td>", " Traveler {{travelerId}}-{{travelerType}}</br>", " Amount : {{price.total}} {{price.currency}} </br>", " {{#each price.margins}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}}", " {{#each price.discounts}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}} ", " </td>", " </tr> ", " {{/each}}", " <table>", " </tr>", " <hr />", " {{/each}}", "</table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});" ], "type": "text/javascript", "packages": {} } }, { "listen": "prerequest", "script": { "exec": [ "const moment = require('moment');", "const today = moment();", "", "var todayDate = today.format('YYYY-MM-DD');", "pm.collectionVariables.set(\"todayDate\", todayDate);", "", "// 'departureDate' environment variable set to be today + 14 days ", "var twoWeeksLater = moment().add(14, 'days');", "pm.collectionVariables.set(\"departureDate\", twoWeeksLater.format('YYYY-MM-DD'));", "", "// 'returnDate' environment variable set to be today + 28 days", "var aMonthLater = moment().add(28, 'days');", "pm.collectionVariables.set(\"returnDate\", aMonthLater.format('YYYY-MM-DD'));" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&departureDate={{departureDate}}&returnDate={{returnDate}}&adults=2&max=5", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "shopping", "flight-offers" ], "query": [ { "key": "originLocationCode", "value": "SYD" }, { "key": "destinationLocationCode", "value": "BKK" }, { "key": "departureDate", "value": "{{departureDate}}" }, { "key": "returnDate", "value": "{{returnDate}}" }, { "key": "adults", "value": "2" }, { "key": "includedAirlineCodes", "value": "TG", "disabled": true }, { "key": "max", "value": "5" } ] }, "description": "The Flight Offers Search API allows to get cheapest flight recommendations and prices on a given journey. It provides a list of flight recommendations and fares from a given origin (city or airport), for a given date (or date range) and for a given list of passengers. Additional information such as bag allowance, first ancillary bag prices or fare details are also provided." }, "response": [ { "name": "Flight Offers Search", "originalRequest": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&adults=2&max=5&departureDate=2024-07-16&returnDate=2024-07-30", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "shopping", "flight-offers" ], "query": [ { "key": "originLocationCode", "value": "SYD" }, { "key": "destinationLocationCode", "value": "BKK" }, { "key": "adults", "value": "2" }, { "key": "includedAirlineCodes", "value": "TG", "disabled": true }, { "key": "max", "value": "5" }, { "key": "departureDate", "value": "2024-07-16" }, { "key": "returnDate", "value": "2024-07-30" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 21 Mar 2024 13:53:23 GMT" }, { "key": "Content-Type", "value": "application/vnd.amadeus+json" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Ama-Internal-Message-Version", "value": "14.1" }, { "key": "Ama-Request-Id", "value": "0001WWTZGAPAKR" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Ama-Gateway-Request-Id", "value": "rrt-0c11c5408edc0aed5-a-de-8823-316619317-1" }, { "key": "Access-Control-Allow-Headers", "value": "origin, x-requested-with, accept, Content-Type, Authorization" }, { "key": "Access-Control-Max-Age", "value": "3628800" }, { "key": "Access-Control-Allow-Methods", "value": "*" }, { "key": "Server", "value": "Amadeus" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ], "cookie": [], "body": "{\n \"meta\": {\n \"count\": 5,\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&adults=2&max=5&departureDate=2024-07-16&returnDate=2024-07-30\"\n }\n },\n \"data\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-07-16\",\n \"lastTicketingDateTime\": \"2024-07-16\",\n \"numberOfBookableSeats\": 3,\n \"itineraries\": [\n {\n \"duration\": \"PT14H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T11:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T16:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"212\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T19:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-16T21:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"732\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H30M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT16H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T13:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T18:00:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"731\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H30M\",\n \"id\": \"9\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T22:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T09:45:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"211\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H35M\",\n \"id\": \"10\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1002.64\",\n \"base\": \"606.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1002.64\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"PR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"501.32\",\n \"base\": \"303.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"9\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"10\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"501.32\",\n \"base\": \"303.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"9\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"10\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"2\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-07-16\",\n \"lastTicketingDateTime\": \"2024-07-16\",\n \"numberOfBookableSeats\": 3,\n \"itineraries\": [\n {\n \"duration\": \"PT14H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T11:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T16:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"212\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T19:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-16T21:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"732\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H30M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT28H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T01:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T05:45:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"741\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H15M\",\n \"id\": \"11\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T22:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T09:45:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"211\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H35M\",\n \"id\": \"12\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1062.64\",\n \"base\": \"666.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1062.64\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"PR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"531.32\",\n \"base\": \"333.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"11\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"12\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"531.32\",\n \"base\": \"333.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"11\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"12\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"3\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-22\",\n \"lastTicketingDateTime\": \"2024-03-22\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT16H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T03:10:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"13\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT8H25M\",\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T08:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-17T09:50:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"624\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT21H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T10:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T14:15:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"625\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T02:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T11:35:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"2\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1106.76\",\n \"base\": \"724.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1106.76\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"SQ\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"4\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-22\",\n \"lastTicketingDateTime\": \"2024-03-22\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT20H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T03:10:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"13\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT8H25M\",\n \"id\": \"7\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T13:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-17T14:40:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"604\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"8\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT21H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T10:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T14:15:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"625\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T02:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T11:35:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"2\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1106.76\",\n \"base\": \"724.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1106.76\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"SQ\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"5\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-22\",\n \"lastTicketingDateTime\": \"2024-03-22\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT23H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T03:10:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"13\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT8H25M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T15:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-17T16:45:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"610\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H20M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT21H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T10:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T14:15:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"625\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T02:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T11:35:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"2\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1106.76\",\n \"base\": \"724.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1106.76\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"SQ\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"dictionaries\": {\n \"locations\": {\n \"BKK\": {\n \"cityCode\": \"BKK\",\n \"countryCode\": \"TH\"\n },\n \"SIN\": {\n \"cityCode\": \"SIN\",\n \"countryCode\": \"SG\"\n },\n \"MNL\": {\n \"cityCode\": \"MNL\",\n \"countryCode\": \"PH\"\n },\n \"SYD\": {\n \"cityCode\": \"SYD\",\n \"countryCode\": \"AU\"\n }\n },\n \"aircraft\": {\n \"321\": \"AIRBUS A321\",\n \"333\": \"AIRBUS A330-300\",\n \"789\": \"BOEING 787-9\",\n \"32Q\": \"AIRBUS A321NEO\"\n },\n \"currencies\": {\n \"EUR\": \"EURO\"\n },\n \"carriers\": {\n \"PR\": \"PHILIPPINE AIRLINES\",\n \"TR\": \"SCOOT\"\n }\n }\n}" } ] }, { "name": "Flight Offers Search", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code and data type", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "pm.test(\"flight-offers is returned\", function () {", " var data = pm.response.json();", " pm.expect(data.data[0].type).to.equal('flight-offer');", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "", "// extract 'flightOffer_data' environment variable", "let response = pm.response.json();", "pm.collectionVariables.set(\"flightOfferData\", JSON.stringify(response.data[0]));", "", "// display visualisation", "var template = `", "<span style=\"font-weight: bold;\">Total number of offers : {{response.meta.count}}</span>", "<table>", " {{#each response.data}}", " <tr>", " <td>Offer id : {{id}}</td>", " <td>Source : {{source}}</td>", " <td style=\"font-weight: bold;\">Total price : {{price.total}} {{price.currency}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Segment</th>", " <th>Flight number</th>", " <th>Departure Time</th>", " <th>Arrival Time</th>", " </tr>", " {{#each itineraries}}", " {{#each segments}}", " <tr>", " <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>", " <td>{{carrierCode}} {{number}}</td>", " <td>{{departure.at}}</td>", " <td>{{arrival.at}}</td>", " </tr>", " {{/each}}", " {{/each}}", " <table>", " {{#each travelerPricings}}", " <tr>", " <td>", " Traveler {{travelerId}}-{{travelerType}}</br>", " Amount : {{price.total}} {{price.currency}} </br>", " {{#each price.margins}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}}", " {{#each price.discounts}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}} ", " </td>", " </tr> ", " {{/each}}", " <table>", " </tr>", " <hr />", " {{/each}}", "</table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-HTTP-Method-Override", "value": "GET", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"currencyCode\": \"USD\",\n \"originDestinations\": [\n {\n \"id\": \"1\",\n \"originLocationCode\": \"BOS\",\n \"destinationLocationCode\": \"MAD\",\n \"departureDateTimeRange\": {\n \"date\": \"{{departureDate}}\",\n \"time\": \"10:00:00\"\n }\n },\n {\n \"id\": \"2\",\n \"originLocationCode\": \"MAD\",\n \"destinationLocationCode\": \"BOS\",\n \"departureDateTimeRange\": {\n \"date\": \"{{returnDate}}\",\n \"time\": \"17:00:00\"\n }\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"travelerType\": \"ADULT\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n },\n {\n \"id\": \"2\",\n \"travelerType\": \"CHILD\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n }\n ],\n \"sources\": [\n \"GDS\"\n ],\n \"searchCriteria\": {\n \"maxFlightOffers\": 2,\n \"flightFilters\": {\n \"cabinRestrictions\": [\n {\n \"cabin\": \"BUSINESS\",\n \"coverage\": \"MOST_SEGMENTS\",\n \"originDestinationIds\": [\n \"1\"\n ]\n }\n ],\n \"carrierRestrictions\": {\n \"excludedCarrierCodes\": [\n \"AA\",\n \"TP\",\n \"AZ\"\n ]\n }\n }\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v2/shopping/flight-offers", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "shopping", "flight-offers" ] }, "description": "The Flight Offers Search API allows to get cheapest flight recommendations and prices on a given journey. It provides a list of flight recommendations and fares from a given origin (city or airport), for a given date (or date range) and for a given list of passengers. Additional information such as bag allowance, first ancillary bag prices or fare details are also provided." }, "response": [ { "name": "Flight Offers Search", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "X-HTTP-Method-Override", "value": "GET" } ], "body": { "mode": "raw", "raw": "{\n \"currencyCode\": \"USD\",\n \"originDestinations\": [\n {\n \"id\": \"1\",\n \"originLocationCode\": \"BOS\",\n \"destinationLocationCode\": \"MAD\",\n \"departureDateTimeRange\": {\n \"date\": \"2024-04-04\",\n \"time\": \"10:00:00\"\n }\n },\n {\n \"id\": \"2\",\n \"originLocationCode\": \"MAD\",\n \"destinationLocationCode\": \"BOS\",\n \"departureDateTimeRange\": {\n \"date\": \"2024-04-18\",\n \"time\": \"17:00:00\"\n }\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"travelerType\": \"ADULT\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n },\n {\n \"id\": \"2\",\n \"travelerType\": \"CHILD\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n }\n ],\n \"sources\": [\n \"GDS\"\n ],\n \"searchCriteria\": {\n \"maxFlightOffers\": 2,\n \"flightFilters\": {\n \"cabinRestrictions\": [\n {\n \"cabin\": \"BUSINESS\",\n \"coverage\": \"MOST_SEGMENTS\",\n \"originDestinationIds\": [\n \"1\"\n ]\n }\n ],\n \"carrierRestrictions\": {\n \"excludedCarrierCodes\": [\n \"AA\",\n \"TP\",\n \"AZ\"\n ]\n }\n }\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "https://test.api.amadeus.com/v2/shopping/flight-offers", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "shopping", "flight-offers" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 21 Mar 2024 13:54:24 GMT" }, { "key": "Content-Type", "value": "application/vnd.amadeus+json" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Ama-Internal-Message-Version", "value": "14.1" }, { "key": "Ama-Request-Id", "value": "0001WWUQGAPAMC" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Ama-Gateway-Request-Id", "value": "rrt-0c11c5408edc0aed5-a-de-8823-316619317-2" }, { "key": "Access-Control-Allow-Headers", "value": "origin, x-requested-with, accept, Content-Type, Authorization" }, { "key": "Access-Control-Max-Age", "value": "3628800" }, { "key": "Access-Control-Allow-Methods", "value": "*" }, { "key": "Server", "value": "Amadeus" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ], "cookie": [], "body": "{\n \"meta\": {\n \"count\": 2\n },\n \"data\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"lastTicketingDateTime\": \"2024-03-21\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT7H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-04T17:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-05T06:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"6166\",\n \"aircraft\": {\n \"code\": \"330\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT7H\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT29H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-18T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-18T22:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"7467\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-19T17:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-19T19:50:00\"\n },\n \"carrierCode\": \"AY\",\n \"number\": \"5503\",\n \"aircraft\": {\n \"code\": \"781\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6502.20\",\n \"base\": \"3898.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"6502.20\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\"\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\"\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"2\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"lastTicketingDateTime\": \"2024-03-21\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT11H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"B\",\n \"at\": \"2024-04-04T16:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"YYZ\",\n \"terminal\": \"1\",\n \"at\": \"2024-04-04T18:43:00\"\n },\n \"carrierCode\": \"AC\",\n \"number\": \"8699\",\n \"aircraft\": {\n \"code\": \"E75\"\n },\n \"duration\": \"PT2H3M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"YYZ\",\n \"terminal\": \"1\",\n \"at\": \"2024-04-04T20:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2024-04-05T10:20:00\"\n },\n \"carrierCode\": \"AC\",\n \"number\": \"824\",\n \"aircraft\": {\n \"code\": \"788\"\n },\n \"operating\": {\n \"carrierCode\": \"AC\"\n },\n \"duration\": \"PT7H25M\",\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT23H23M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T21:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BRU\",\n \"at\": \"2024-04-18T23:25:00\"\n },\n \"carrierCode\": \"SN\",\n \"number\": \"3730\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"SN\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"BRU\",\n \"at\": \"2024-04-19T10:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"YUL\",\n \"at\": \"2024-04-19T11:30:00\"\n },\n \"carrierCode\": \"SN\",\n \"number\": \"9551\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"AC\"\n },\n \"duration\": \"PT7H30M\",\n \"id\": \"7\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"YUL\",\n \"at\": \"2024-04-19T13:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"B\",\n \"at\": \"2024-04-19T14:38:00\"\n },\n \"carrierCode\": \"SN\",\n \"number\": \"9617\",\n \"aircraft\": {\n \"code\": \"E75\"\n },\n \"duration\": \"PT1H28M\",\n \"id\": \"8\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6846.40\",\n \"base\": \"4180.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"6846.40\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AC\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3423.20\",\n \"base\": \"2090.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3423.20\",\n \"base\": \"2090.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n }\n ]\n }\n ]\n }\n ],\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"YUL\": {\n \"cityCode\": \"YMQ\",\n \"countryCode\": \"CA\"\n },\n \"BRU\": {\n \"cityCode\": \"BRU\",\n \"countryCode\": \"BE\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n },\n \"LHR\": {\n \"cityCode\": \"LON\",\n \"countryCode\": \"GB\"\n },\n \"YYZ\": {\n \"cityCode\": \"YTO\",\n \"countryCode\": \"CA\"\n }\n },\n \"aircraft\": {\n \"319\": \"AIRBUS A319\",\n \"330\": \"AIRBUS INDUSTRIE A330\",\n \"781\": \"BOEING 787-10\",\n \"788\": \"BOEING 787-8\",\n \"E75\": \"EMBRAER 175\",\n \"77W\": \"BOEING 777-300ER\"\n },\n \"currencies\": {\n \"USD\": \"US DOLLAR\"\n },\n \"carriers\": {\n \"AC\": \"AIR CANADA\",\n \"AY\": \"FINNAIR\",\n \"IB\": \"IBERIA\",\n \"SN\": \"BRUSSELS AIRLINES\",\n \"BA\": \"BRITISH AIRWAYS\"\n }\n }\n}" } ] }, { "name": "Flight Offers Price", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or No fare applicable\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " // extract 'flightOfferPrice_data' into collection variable", " pm.collectionVariables.set(\"flightOfferPriceData\", JSON.stringify(data.data.flightOffers[0]));", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].detail).to.equal(\"No fare applicable\");", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "// Function to get header value by name", "function getHeaderValue(headerName) {", " let headers = pm.response.headers;", " let header = headers.get(headerName);", " return header ? header : 'Header not found';", "}", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "console.log(\"Ama-Request-Id: \" + getHeaderValue('Ama-Request-Id'));", "", "// display visualisation", "var template = `", " <table bgcolor=\"#FFFFFF\">", " {{#each response.data.flightOffers}}", " <tr>", " <td>offer id : {{id}}</td>", " <td>Source : {{source}}</td>", " <td style=\"font-weight: bold;\">Total amount : {{price.total}} {{price.currency}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Segment</th>", " <th>Flight number</th>", " <th>Departure Time</th>", " <th>Arrival Time</th>", " </tr>", " {{#each itineraries}}", " {{#each segments}}", " <tr>", " <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>", " <td>{{carrierCode}} {{number}}</td>", " <td>{{departure.at}}</td>", " <td>{{arrival.at}}</td>", " </tr>", " {{/each}}", " {{/each}}", " <table>", " {{#each travelerPricings}}", " <tr>", " <td>", " Traveler {{travelerId}}-{{travelerType}}</br>", " Amount : {{price.total}} {{price.currency}} </br>", " {{#each price.margins}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}}", " {{#each price.discounts}}", " <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>", " {{/each}} ", " </td>", " </tr> ", " {{/each}}", " </table> ", " </tr>", " <hr />", " {{/each}}", " </table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-HTTP-Method-Override", "value": "GET", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {{flightOfferData}}\n ]\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/pricing", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-offers", "pricing" ] }, "description": "The Flight Offers Price REST/JSON API is an open price API that enables you to get or confirm the price of a flight and obtain information about taxes and fees to be applied to the entire journey." }, "response": [ { "name": "Flight Offers Price", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "X-HTTP-Method-Override", "value": "GET" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"lastTicketingDateTime\": \"2024-03-21\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT7H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-04T17:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-05T06:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"6166\",\n \"aircraft\": {\n \"code\": \"330\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT7H\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT29H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-18T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-18T22:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"7467\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-19T17:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-19T19:50:00\"\n },\n \"carrierCode\": \"AY\",\n \"number\": \"5503\",\n \"aircraft\": {\n \"code\": \"781\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6502.20\",\n \"base\": \"3898.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"6502.20\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\"\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\"\n }\n ]\n }\n ]\n }\n ]\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/pricing", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-offers", "pricing" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Thu, 21 Mar 2024 13:55:07 GMT" }, { "key": "Content-Type", "value": "application/vnd.amadeus+json" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Ama-Internal-Message-Version", "value": "14.1" }, { "key": "Ama-Request-Id", "value": "0001WWVAAAPANU" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Ama-Gateway-Request-Id", "value": "rrt-0c11c5408edc0aed5-a-de-8823-316619317-3" }, { "key": "Access-Control-Allow-Headers", "value": "origin, x-requested-with, accept, Content-Type, Authorization" }, { "key": "Access-Control-Max-Age", "value": "3628800" }, { "key": "Access-Control-Allow-Methods", "value": "*" }, { "key": "Server", "value": "Amadeus" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ], "cookie": [], "body": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"paymentCardRequired\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-04T17:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-05T06:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"6166\",\n \"aircraft\": {\n \"code\": \"330\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT7H\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 594,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-18T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-18T22:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"7467\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 116,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-19T17:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-19T19:50:00\"\n },\n \"carrierCode\": \"AY\",\n \"number\": \"5503\",\n \"aircraft\": {\n \"code\": \"781\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 282,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6502.20\",\n \"base\": \"3898.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"FORM_OF_PAYMENT\"\n }\n ],\n \"grandTotal\": \"6502.20\",\n \"billingCurrency\": \"USD\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.90\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"985.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"186.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"16.00\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"38.20\",\n \"code\": \"UB\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n }\n ],\n \"refundableTaxes\": \"82.20\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"brandedFare\": \"ECLASSIC\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.90\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"985.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"186.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"16.00\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"38.20\",\n \"code\": \"UB\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n }\n ],\n \"refundableTaxes\": \"82.20\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"brandedFare\": \"ECLASSIC\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"bookingRequirements\": {\n \"emailAddressRequired\": true,\n \"mobilePhoneNumberRequired\": true,\n \"travelerRequirements\": [\n {\n \"travelerId\": \"1\",\n \"genderRequired\": true,\n \"documentRequired\": true,\n \"dateOfBirthRequired\": true,\n \"redressRequiredIfAny\": true,\n \"residenceRequired\": true\n },\n {\n \"travelerId\": \"2\",\n \"genderRequired\": true,\n \"documentRequired\": true,\n \"dateOfBirthRequired\": true,\n \"redressRequiredIfAny\": true,\n \"residenceRequired\": true\n }\n ]\n }\n },\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n },\n \"LHR\": {\n \"cityCode\": \"LON\",\n \"countryCode\": \"GB\"\n }\n }\n }\n}" } ] }, { "name": "Flight Create Orders", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200, 201 or Segment sell failure\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", "", " if (responseCode === 200 || responseCode === 201) {", " pm.expect(responseCode).to.be.oneOf([200, 201]);", " // extract 'flightOrderId' into collection variable", " pm.collectionVariables.set(\"flightOrderId\", data.data.id);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].title).to.equal(\"SEGMENT SELL FAILURE\");", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"flightOffers\": [\n {{flightOfferPriceData}}\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"gender\": \"MALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"documents\": [\n {\n \"documentType\": \"PASSPORT\",\n \"birthPlace\": \"Madrid\",\n \"issuanceLocation\": \"Madrid\",\n \"issuanceDate\": \"2015-04-14\",\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"validityCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"holder\": true\n }\n ]\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO\",\n \"lastName\": \"RODRIGUEZ\"\n },\n \"companyName\": \"INCREIBLE VIAJES\",\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"emailAddress\": \"support@increibleviajes.es\",\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"cityName\": \"Madrid\",\n \"countryCode\": \"ES\"\n }\n }\n ]\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/booking/flight-orders", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "flight-orders" ] }, "description": "The Flight Create Orders is an API to book flights and ancillary services proposed by the airlines like additional checked bags or seats with extra-legroom. It returns flight order unique ID and details." }, "response": [ { "name": "Flight Create Orders", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"paymentCardRequired\": false,\n \"lastTicketingDate\": \"2024-04-03\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-17T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-04-18T06:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"333\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT6H45M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 556,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-04-18T07:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T09:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-05-01T20:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-05-01T22:20:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1101\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-05-02T13:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-05-02T15:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"334\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 278,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"7151.60\",\n \"base\": \"4410.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"FORM_OF_PAYMENT\"\n }\n ],\n \"grandTotal\": \"7151.60\",\n \"billingCurrency\": \"USD\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"gender\": \"MALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"documents\": [\n {\n \"documentType\": \"PASSPORT\",\n \"birthPlace\": \"Madrid\",\n \"issuanceLocation\": \"Madrid\",\n \"issuanceDate\": \"2015-04-14\",\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"validityCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"holder\": true\n }\n ]\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO\",\n \"lastName\": \"RODRIGUEZ\"\n },\n \"companyName\": \"INCREIBLE VIAJES\",\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"emailAddress\": \"support@increibleviajes.es\",\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"cityName\": \"Madrid\",\n \"countryCode\": \"ES\"\n }\n }\n ]\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "https://test.api.amadeus.com/v1/booking/flight-orders", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "flight-orders" ] } }, "status": "Created", "code": 201, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Wed, 03 Apr 2024 03:43:12 GMT" }, { "key": "Content-Type", "value": "application/vnd.amadeus+json" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Ama-Internal-Message-Version", "value": "14.1" }, { "key": "Ama-Request-Id", "value": "00011TZG5BCKZV" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Ama-Gateway-Request-Id", "value": "rrt-018d70d145cb0fb28-b-de-32265-389448026-17" }, { "key": "Access-Control-Allow-Headers", "value": "origin, x-requested-with, accept, Content-Type, Authorization" }, { "key": "Access-Control-Max-Age", "value": "3628800" }, { "key": "Access-Control-Allow-Methods", "value": "*" }, { "key": "Server", "value": "Amadeus" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ], "cookie": [], "body": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"id\": \"eJzTd9cPDAgICfYAAAvRAoY%3D\",\n \"queuingOfficeId\": \"NCE4D31SB\",\n \"associatedRecords\": [\n {\n \"reference\": \"QPPTSH\",\n \"creationDate\": \"2024-04-03T03:43:00.000\",\n \"originSystemCode\": \"GDS\",\n \"flightOfferId\": \"1\"\n }\n ],\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"nonHomogeneous\": false,\n \"lastTicketingDate\": \"2024-04-03\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-17T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-04-18T06:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"333\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT6H45M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 556,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-04-18T07:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T09:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-05-01T20:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-05-01T22:20:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1101\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-05-02T13:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-05-02T15:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"334\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 278,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"7151.60\",\n \"base\": \"4410.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"FORM_OF_PAYMENT\"\n }\n ],\n \"grandTotal\": \"7151.60\",\n \"billingCurrency\": \"USD\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"gender\": \"MALE\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"documents\": [\n {\n \"number\": \"00000000\",\n \"issuanceDate\": \"2015-04-14\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"issuanceLocation\": \"Madrid\",\n \"nationality\": \"ES\",\n \"birthPlace\": \"Madrid\",\n \"documentType\": \"PASSPORT\",\n \"holder\": true\n }\n ],\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\"\n }\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n },\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"automatedProcess\": [\n {\n \"code\": \"IMMEDIATE\",\n \"queue\": {\n \"number\": \"0\",\n \"category\": \"0\"\n },\n \"officeId\": \"NCE4D31SB\"\n }\n ],\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO RODRIGUEZ\"\n },\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"countryCode\": \"ES\",\n \"cityName\": \"Madrid\"\n },\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"companyName\": \"INCREIBLE VIAJES\",\n \"emailAddress\": \"support@increibleviajes.es\"\n }\n ]\n },\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"CDG\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n }\n }\n }\n}" } ] }, { "name": "Flight Order Management", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/booking/flight-orders/{{flightOrderId}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "flight-orders", "{{flightOrderId}}" ] }, "description": "The Flight Order Management REST JSON API is an open API that allows you to manipulate a flight order previously created." }, "response": [ { "name": "Flight Order Management", "originalRequest": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/booking/flight-orders/eJzTd9cPDAgICfYAAAvRAoY%3D", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "flight-orders", "eJzTd9cPDAgICfYAAAvRAoY%3D" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Wed, 03 Apr 2024 03:43:57 GMT" }, { "key": "Content-Type", "value": "application/vnd.amadeus+json" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Ama-Internal-Message-Version", "value": "14.1" }, { "key": "Ama-Request-Id", "value": "0001K3SNUBCL18" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Ama-Gateway-Request-Id", "value": "rrt-018d70d145cb0fb28-b-de-32265-389448026-18" }, { "key": "Access-Control-Allow-Headers", "value": "origin, x-requested-with, accept, Content-Type, Authorization" }, { "key": "Access-Control-Max-Age", "value": "3628800" }, { "key": "Access-Control-Allow-Methods", "value": "*" }, { "key": "Server", "value": "Amadeus" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ], "cookie": [], "body": "{\n \"meta\": {\n \"count\": 1,\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v1/booking/flight-orders/eJzTd9cPDAgICfYAAAvRAoY%3D\"\n }\n },\n \"data\": {\n \"type\": \"flight-order\",\n \"id\": \"eJzTd9cPDAgICfYAAAvRAoY%3D\",\n \"queuingOfficeId\": \"NCE4D31SB\",\n \"associatedRecords\": [\n {\n \"reference\": \"QPPTSH\",\n \"originSystemCode\": \"AF\",\n \"flightOfferId\": \"1\"\n },\n {\n \"reference\": \"QPPTSH\",\n \"creationDate\": \"2024-04-03T03:43:00\",\n \"originSystemCode\": \"GDS\",\n \"flightOfferId\": \"1\"\n }\n ],\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"nonHomogeneous\": false,\n \"lastTicketingDate\": \"2024-04-03\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-17T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-04-18T06:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"333\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT6H45M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 556,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-04-18T07:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T09:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"duration\": \"PT2H10M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-05-01T20:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-05-01T22:20:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1101\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"duration\": \"PT2H5M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-05-02T13:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-05-02T15:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"334\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT7H35M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 278,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"7151.60\",\n \"base\": \"4410.00\",\n \"grandTotal\": \"7151.60\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ]\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ]\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"mealServices\": [\n {\n \"label\": \"Breakfast\"\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"mealServices\": [\n {\n \"label\": \"Snack\"\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ]\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"mealServices\": [\n {\n \"label\": \"Breakfast\"\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"mealServices\": [\n {\n \"label\": \"Snack\"\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n },\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"JORGE.GONZALES833@TELEFONICA.ES\"\n }\n },\n {\n \"id\": \"2\",\n \"gender\": \"MALE\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"documents\": [\n {\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"documentType\": \"PASSPORT\",\n \"holder\": true\n }\n ],\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"JORGE.GONZALES833@TELEFONICA.ES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\",\n \"flightOfferIds\": [\n \"1\"\n ]\n },\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"PRICING ENTRY FXP/FF1,2-BIZSTAND/FF3,4-STANDARD6/R,P,VC-AF,FC-USD/P1-2\",\n \"flightOfferIds\": [\n \"1\"\n ]\n }\n ],\n \"airline\": [\n {\n \"subType\": \"ADVANCED_TICKET_TIME_LIMIT\",\n \"airlineCode\": \"AF\",\n \"text\": \"TO AF BY 06APR 0500 NCE OTHERWISE WILL BE XLD\",\n \"flightOfferIds\": [\n \"1\"\n ]\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"dateTime\": \"2024-04-09\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO RODRIGUEZ\"\n },\n \"address\": {\n \"lines\": [\n \"CALLE PRADO, 16\"\n ],\n \"postalCode\": \"28014\",\n \"countryCode\": \"ES\",\n \"cityName\": \"MADRID\"\n },\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"companyName\": \"INCREIBLE VIAJES\",\n \"emailAddress\": \"SUPPORT@INCREIBLEVIAJES.ES\"\n }\n ]\n },\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n },\n \"CDG\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n }\n }\n }\n}" } ] }, { "name": "Flight Order Management", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 204\", function () {", " pm.response.to.have.status(204);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "DELETE", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/booking/flight-orders/{{flightOrderId}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "flight-orders", "{{flightOrderId}}" ] }, "description": "The Flight Order Management REST JSON API is an open API that allows you to manipulate a flight order previously created." }, "response": [] }, { "name": "Seatmap Display", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or Seat map is not available\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].detail).to.equal(\"Seat map is not available\");", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/shopping/seatmaps?flight-orderId={{flightOrderId}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "seatmaps" ], "query": [ { "key": "flight-orderId", "value": "{{flightOrderId}}" } ] }, "description": " The Seatmap Display REST/JSON API is an open API that allows you to retrieve the seat map of one or several flights." }, "response": [] }, { "name": "Seatmap Display", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or Seat map is not available\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " var request = pm.request;", "", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].detail).to.equal(\"Seat map is not available\");", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-HTTP-Method-Override", "value": "GET", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": [\n {{flightOfferData}}\n ]\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/seatmaps", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "seatmaps" ] }, "description": " The Seatmap Display REST/JSON API is an open API that allows you to retrieve the seat map of one or several flights." }, "response": [] }, { "name": "Branded Fares Upsell", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or No upsell offer can be found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].detail).to.equal(\"No upsell offer can be found\");", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-HTTP-Method-Override", "value": "GET", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"flight-offers-upselling\",\n \"flightOffers\": [\n {{flightOfferData}}\n ],\n \"payments\": [\n {\n \"brand\": \"VISA_IXARIS\",\n \"binNumber\": 123456,\n \"flightOfferIds\": [\n 1\n ]\n }\n ]\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/upselling", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-offers", "upselling" ] }, "description": "Branded fares, or fare families, are airline-created fares that combine different products and services like bags, sets, meals, free cancellation or miles accrual. The Amadeus Branded Fare Upsell API provides the branded fares available for a given flight, along with pricing and a fare description. This enables you to increase booking revenue by recommending higher-value fares during the shopping phase.\n\nThe Branded Fares Upsell API is easily integrated into the Amadeus REST/JSON flight booking engine and provides branded fare options for flights returned by the Flight Offers Search API." }, "response": [] }, { "name": "Flight Price Analysis", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code\r", "pm.test(\"Response status code is 200\", function () {\r", " pm.response.to.have.status(200);\r", "});\r", "\r", "// Set up\r", "// Get Response in variable\r", "const response = pm.response.json();\r", "\r", "// Get Query in variable\r", "let query = {};\r", "pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r", "\r", "// process calculation only for succeful reply\r", "if (pm.response.status == \"OK\"){\r", "\r", " let quartile = [];\r", "\r", " // Get and order traffic data per month\r", " for (let i = 0; i < 5; i++) {\r", " quartile.push(response.data[0].priceMetrics[i].amount + ' ' + query.currencyCode);\r", " };\r", "\r", " min = quartile[0]\r", " max = quartile[4]\r", " first = quartile[1]\r", " third = quartile[3]\r", "}\r", "\r", "\r", "// Function to get header value by name with fallback\r", "function getHeaderValue(headerName, fallbackHeaderName) {\r", " let headers = pm.response.headers;\r", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r", "}\r", "\r", "// Log the specific headers\r", "console.log(\"Timestamp: \" + getHeaderValue('Date'));\r", "\r", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r", "console.log(headerName + \": \" + amaRequestId);\r", "\r", "\r", "// Define visualizer template\r", "let template_success = `\r", "<table style=\"width:50%; border-style: hidden\">\r", " <tr>\r", " <th style=\"text-align: center\"; colspan=\"4\"> Price repartition for a flight from ${query.originIataCode} to ${query.destinationIataCode} on the ${query.departureDate} in ${query.currencyCode}</th>\r", " </tr>\r", " <tr style=\"border-style: hidden\">\r", " <td style=\"background-color:rgba(0, 163, 78, 0.6); border-radius: 20% 20% 20% 20%; border-collapse: separated; border: 2px solid white; width:25%\"></td>\r", " <td style=\"background-color:rgba(247, 168, 39, 0.6); border-radius: 20% 0% 0% 20%; border-collapse: collapse; width:25%\"></td>\r", " <td style=\"background-color:rgba(247, 168, 39, 0.6); border-radius: 0% 20% 20% 0%; border-collapse: collapse; width:25%\"></td>\r", " <td style=\"background-color:rgba(206, 0, 88, 0.6); border-radius: 20% 20% 20% 20%; border-collapse: separated; border: 2px solid white; width:25%\"></td>\r", " </tr>\r", " <tr\">\r", " <td style=\"text-align: center\"; colspan=\"2\"> ${first} </td>\r", " <td style=\"text-align: center\"; colspan=\"2\"> ${third} </td>\r", " </tr>\r", " <tr style=\"border-style: hidden\">\r", " <td colspan=\"4\"> Minimum selled price: ${min} </td>\r", " </tr>\r", " <tr style=\"border-style: hidden\">\r", " <td colspan=\"4\"> Maximum selled price: ${max} </td>\r", " </tr>\r", "</table>\r", "`;\r", "\r", "let template_nodata = \"OUPS there is no data for this city or period\";\r", "\r", "let template_default = \"Sorry, we can't visualize\";\r", "\r", "// Set visualizer\r", "if (pm.response.status == \"OK\"){\r", " if (response.meta.count > 0){\r", " // When there is data, return a bar graph\r", " pm.visualizer.set(template_success, {\r", " response: pm.response.json()\r", " });\r", " }else{\r", " // when there is no data, return a message\r", " pm.visualizer.set(template_nodata, {\r", " response: pm.response.json()\r", " });\r", " }\r", "}else{\r", " // return a message when we can't visualise ( status =! 200 )\r", " pm.visualizer.set(template_default, {\r", " response: pm.response.json()\r", " });\r", "}" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/analytics/itinerary-price-metrics?originIataCode=MAD&destinationIataCode=CDG&departureDate=2022-11-21&currencyCode=EUR&oneWay=false", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "analytics", "itinerary-price-metrics" ], "query": [ { "key": "originIataCode", "value": "MAD" }, { "key": "destinationIataCode", "value": "CDG" }, { "key": "departureDate", "value": "2022-11-21" }, { "key": "currencyCode", "value": "EUR" }, { "key": "oneWay", "value": "false" } ] }, "description": "When booking a flight, travelers need to be confident that they're getting a good deal. The Flight Price Analysis API uses an Artificial Intelligence algorithm trained on Amadeus historical flight booking data to show how current flight prices compare to historical fares and whether the price of a flight is below or above average. \n\nFor a given city pair and departure date, the API provides historical prices in a quartile distribution, including minimum, maximum and average price." }, "response": [] }, { "name": "Flight Choice Prediction", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-HTTP-Method-Override", "value": "GET", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"meta\": {\n \"count\": 49,\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=ATH&destinationLocationCode=MAD&adults=1&departureDate=2021-11-20\"\n }\n },\n \"data\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT4H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4\",\n \"at\": \"2021-11-20T23:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"3281\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"7\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"82.69\",\n \"base\": \"53.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"82.69\",\n \"additionalServices\": [\n {\n \"amount\": \"25.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"82.69\",\n \"base\": \"53.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"ADLNAOB4\",\n \"brandedFare\": \"NOBAG\",\n \"class\": \"A\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"2\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H20M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T05:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-20T07:55:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1842\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT1H25M\",\n \"id\": \"36\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-20T11:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T13:50:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1357\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT4H30M\",\n \"id\": \"37\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"136.99\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"TK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"36\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"37\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"3\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T21:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-21T00:10:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1844\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT1H35M\",\n \"id\": \"28\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-21T11:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:50:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1357\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT4H30M\",\n \"id\": \"29\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"136.99\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"TK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"28\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"29\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"4\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT24H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-20T17:15:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1850\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT1H30M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-21T11:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:50:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1357\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT4H30M\",\n \"id\": \"15\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"136.99\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"TK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"15\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"5\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"88\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T07:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T10:15:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1699\",\n \"aircraft\": {\n \"code\": \"73W\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"89\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"142.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"88\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"89\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"6\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"92\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T09:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T12:15:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1701\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"93\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"142.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"92\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"93\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"7\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H20M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T18:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"OTP\",\n \"at\": \"2021-11-20T20:30:00\"\n },\n \"carrierCode\": \"RO\",\n \"number\": \"274\",\n \"aircraft\": {\n \"code\": \"73W\"\n },\n \"operating\": {\n \"carrierCode\": \"RO\"\n },\n \"duration\": \"PT1H35M\",\n \"id\": \"40\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"OTP\",\n \"at\": \"2021-11-21T08:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T11:15:00\"\n },\n \"carrierCode\": \"RO\",\n \"number\": \"415\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"RO\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"41\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"151.99\",\n \"base\": \"99.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"151.99\",\n \"additionalServices\": [\n {\n \"amount\": \"45.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"RO\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"151.99\",\n \"base\": \"99.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"40\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"VOWSVRGR\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"41\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EOWSVRES\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"8\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-15\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT23H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"80\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T13:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T16:05:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1703\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"81\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"159.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"80\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"81\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"9\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-15\",\n \"numberOfBookableSeats\": 6,\n \"itineraries\": [\n {\n \"duration\": \"PT27H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"34\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T17:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T19:35:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1705\",\n \"aircraft\": {\n \"code\": \"73J\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"35\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"159.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"34\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"35\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"10\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT12H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"24\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T15:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:25:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9432\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H50M\",\n \"id\": \"25\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"189.84\",\n \"base\": \"136.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"189.84\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"189.84\",\n \"base\": \"136.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"24\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"25\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"11\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT27H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"82\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T08:55:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9430\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H55M\",\n \"id\": \"83\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"194.32\",\n \"base\": \"136.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"194.32\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"194.32\",\n \"base\": \"136.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"82\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"83\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"12\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 1,\n \"itineraries\": [\n {\n \"duration\": \"PT19H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"56\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T08:55:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9430\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H55M\",\n \"id\": \"57\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"210.32\",\n \"base\": \"152.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"210.32\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"210.32\",\n \"base\": \"152.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"56\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"HS50BALG\",\n \"class\": \"H\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"57\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"HS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"H\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"13\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"42\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T12:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T14:35:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1600\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"43\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"42\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"43\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"14\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT14H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"10\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T19:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1100\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"11\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"10\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"11\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"15\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 1,\n \"itineraries\": [\n {\n \"duration\": \"PT12H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"26\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T15:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:25:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1800\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"27\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"26\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"27\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"16\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT28H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T15:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T17:25:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9432\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H50M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.32\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.32\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.32\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"17\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 2,\n \"itineraries\": [\n {\n \"duration\": \"PT28H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T09:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"266.40\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"266.40\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"266.40\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"18\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 3,\n \"itineraries\": [\n {\n \"duration\": \"PT9H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"64\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T23:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1400\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"65\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"311.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"64\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"65\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"19\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"86\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T23:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1400\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"87\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"311.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"86\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"87\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"20\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"74\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T09:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"75\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"312.40\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"74\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"75\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"21\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT22H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"22\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-21T09:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T11:35:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1300\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"23\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"312.40\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"22\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"23\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"22\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H20M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T08:10:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1843\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"38\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T12:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T14:40:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2026\",\n \"aircraft\": {\n \"code\": \"221\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"39\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"38\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"39\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"23\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT21H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T19:35:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1839\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"96\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-21T12:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T14:40:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2026\",\n \"aircraft\": {\n \"code\": \"223\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"97\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"96\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"97\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"24\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT25H35M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T15:55:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1831\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"62\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-21T12:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T14:40:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2026\",\n \"aircraft\": {\n \"code\": \"223\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"63\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"62\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"63\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"25\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT26H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T19:35:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1839\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"32\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-21T16:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T19:00:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2032\",\n \"aircraft\": {\n \"code\": \"221\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H20M\",\n \"id\": \"33\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"32\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"33\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"26\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT6H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T07:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1757\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"16\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T08:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T11:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1800\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"17\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"16\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"17\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"27\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT8H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T16:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1755\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"20\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1806\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"21\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"20\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"21\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"28\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T07:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1757\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"44\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T11:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T14:35:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1802\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"45\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"44\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"45\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"29\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT11H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T12:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T14:30:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1753\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"52\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1806\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"53\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"52\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"53\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"30\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT6H35M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1283\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"58\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1120\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"59\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"58\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"59\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"31\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT6H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"70\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T10:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T12:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1112\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"71\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"70\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"71\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"32\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H35M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"60\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T13:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T15:35:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1114\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"61\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"60\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"61\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"33\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT10H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T16:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1279\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"8\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1120\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"9\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"9\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"34\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT13H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"46\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T16:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1122\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"47\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"46\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"47\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"35\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"48\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1120\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"49\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"48\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"49\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"36\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT18H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T07:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1757\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"30\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1806\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"31\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"363.55\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"363.55\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"363.55\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"30\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"31\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"37\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT20H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T16:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1755\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"12\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T08:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T11:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1800\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"370.24\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"370.24\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"370.24\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"12\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"38\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1283\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"94\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T10:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T12:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1112\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"95\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"374.63\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"94\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"95\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"39\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT22H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1283\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"78\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T15:35:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1114\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"79\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"374.63\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"78\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"79\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"40\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT22H50M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T16:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CAI\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"carrierCode\": \"MS\",\n \"number\": \"748\",\n \"aircraft\": {\n \"code\": \"32N\"\n },\n \"operating\": {\n \"carrierCode\": \"MS\"\n },\n \"duration\": \"PT1H50M\",\n \"id\": \"84\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CAI\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T09:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:50:00\"\n },\n \"carrierCode\": \"MS\",\n \"number\": \"753\",\n \"aircraft\": {\n \"code\": \"738\"\n },\n \"operating\": {\n \"carrierCode\": \"MS\"\n },\n \"duration\": \"PT5H20M\",\n \"id\": \"85\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"411.33\",\n \"base\": \"214.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"411.33\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"MS\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"411.33\",\n \"base\": \"214.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"84\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LRIMS\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"85\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LWRIMS\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"41\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DXB\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T00:20:00\"\n },\n \"carrierCode\": \"EK\",\n \"number\": \"210\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"EK\"\n },\n \"duration\": \"PT4H25M\",\n \"id\": \"76\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DXB\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T07:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T12:40:00\"\n },\n \"carrierCode\": \"EK\",\n \"number\": \"141\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"EK\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"77\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"753.95\",\n \"base\": \"662.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"753.95\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"EK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"753.95\",\n \"base\": \"662.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"76\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KLEESGR1\",\n \"brandedFare\": \"ECOFLEX\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"77\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KEEESES1\",\n \"brandedFare\": \"ECOFLEX\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"42\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-30\",\n \"numberOfBookableSeats\": 7,\n \"itineraries\": [\n {\n \"duration\": \"PT18H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T13:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AUH\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T20:15:00\"\n },\n \"carrierCode\": \"EY\",\n \"number\": \"90\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"EY\"\n },\n \"duration\": \"PT4H20M\",\n \"id\": \"54\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AUH\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T02:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4\",\n \"at\": \"2021-11-21T07:25:00\"\n },\n \"carrierCode\": \"EY\",\n \"number\": \"75\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"EY\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"55\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"937.56\",\n \"base\": \"649.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"937.56\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"EY\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"937.56\",\n \"base\": \"649.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"54\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"VRH2GR\",\n \"brandedFare\": \"YH\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"weight\": 23,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"55\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KLC2ES\",\n \"brandedFare\": \"YC\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"weight\": 23,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"43\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT12H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T00:30:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"208\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"66\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T01:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T07:05:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"147\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"67\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"976.89\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"66\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"67\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"44\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT18H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T00:30:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"208\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"90\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T07:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T13:20:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"149\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"91\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"976.89\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"90\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"91\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"45\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T13:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-20T18:10:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"204\",\n \"aircraft\": {\n \"code\": \"788\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T01:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T07:05:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"147\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"976.89\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"46\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT26H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T00:30:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"208\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"68\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T15:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T21:05:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"151\",\n \"aircraft\": {\n \"code\": \"788\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"69\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"979.85\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"979.85\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"979.85\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"68\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"69\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"47\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT7H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T16:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1279\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"18\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"at\": \"2021-11-20T18:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"at\": \"2021-11-20T20:30:00\"\n },\n \"carrierCode\": \"6X\",\n \"number\": \"9102\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"6X\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"19\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1030.52\",\n \"base\": \"934.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1030.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"6X\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1030.52\",\n \"base\": \"934.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"18\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YFF77WW\",\n \"class\": \"Y\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"19\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YFF77WW\",\n \"class\": \"M\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"48\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT8H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"72\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T20:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T22:10:00\"\n },\n \"carrierCode\": \"UX\",\n \"number\": \"1026\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"UX\"\n },\n \"duration\": \"PT2H\",\n \"id\": \"73\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1157.84\",\n \"base\": \"1104.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1157.84\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1157.84\",\n \"base\": \"1104.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"72\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"Y\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"73\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"49\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"50\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T12:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"at\": \"2021-11-20T14:40:00\"\n },\n \"carrierCode\": \"6X\",\n \"number\": \"1199\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"6X\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"51\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1303.23\",\n \"base\": \"1104.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1303.23\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"6X\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1303.23\",\n \"base\": \"1104.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"50\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"Y\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"51\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"M\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"dictionaries\": {\n \"locations\": {\n \"CDG\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n },\n \"AMS\": {\n \"cityCode\": \"AMS\",\n \"countryCode\": \"NL\"\n },\n \"OTP\": {\n \"cityCode\": \"BUH\",\n \"countryCode\": \"RO\"\n },\n \"CAI\": {\n \"cityCode\": \"CAI\",\n \"countryCode\": \"EG\"\n },\n \"IST\": {\n \"cityCode\": \"IST\",\n \"countryCode\": \"TR\"\n },\n \"DXB\": {\n \"cityCode\": \"DXB\",\n \"countryCode\": \"AE\"\n },\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"ZRH\": {\n \"cityCode\": \"ZRH\",\n \"countryCode\": \"CH\"\n },\n \"AUH\": {\n \"cityCode\": \"AUH\",\n \"countryCode\": \"AE\"\n },\n \"FRA\": {\n \"cityCode\": \"FRA\",\n \"countryCode\": \"DE\"\n },\n \"ATH\": {\n \"cityCode\": \"ATH\",\n \"countryCode\": \"GR\"\n },\n \"ORY\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n },\n \"MUC\": {\n \"cityCode\": \"MUC\",\n \"countryCode\": \"DE\"\n },\n \"DOH\": {\n \"cityCode\": \"DOH\",\n \"countryCode\": \"QA\"\n }\n },\n \"aircraft\": {\n \"73H\": \"BOEING 737-800 (WINGLETS)\",\n \"73J\": \"BOEING 737-900\",\n \"32N\": \"AIRBUS A320NEO\",\n \"320\": \"AIRBUS A320\",\n \"221\": \"AIRBUS A220-100\",\n \"321\": \"AIRBUS A321\",\n \"223\": \"AIRBUS A220-300\",\n \"77W\": \"BOEING 777-300ER\",\n \"359\": \"AIRBUS A350-900\",\n \"788\": \"BOEING 787-8\",\n \"789\": \"BOEING 787-9\",\n \"318\": \"AIRBUS A318\",\n \"73W\": \"BOEING 737-700 (WINGLETS)\",\n \"319\": \"AIRBUS A319\",\n \"738\": \"BOEING 737-800\"\n },\n \"currencies\": {\n \"EUR\": \"EURO\"\n },\n \"carriers\": {\n \"KL\": \"KLM ROYAL DUTCH AIRLINES\",\n \"QR\": \"QATAR AIRWAYS\",\n \"6X\": \"AMADEUS SIX\",\n \"UX\": \"AIR EUROPA\",\n \"AF\": \"AIR FRANCE\",\n \"MS\": \"EGYPTAIR\",\n \"EK\": \"EMIRATES\",\n \"LX\": \"SWISS INTERNATIONAL AIR LINES\",\n \"EY\": \"ETIHAD AIRWAYS\",\n \"TK\": \"TURKISH AIRLINES\",\n \"IB\": \"IBERIA\",\n \"LH\": \"LUFTHANSA\",\n \"RO\": \"TAROM\"\n }\n }\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "https://test.api.amadeus.com/v2/shopping/flight-offers/prediction", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "shopping", "flight-offers", "prediction" ] }, "description": "The Flight Choice Prediction API allows developers to forecast traveler choices in the context of search & shopping. Exposing machine learning & AI services for travel, this API consumes the output of the Flight Low-fare Search API and returns augmented content with probabilities of choices for each flight offers." }, "response": [] } ] }, { "name": "Flight Inspiration", "item": [ { "name": "Flight Inspiration Search", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or No price results found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 404) {", " pm.expect(data.errors[0].code).to.equal(6003);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-destinations?departureDate={{departureDate}}&origin=BOS", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-destinations" ], "query": [ { "key": "departureDate", "value": "{{departureDate}}" }, { "key": "origin", "value": "BOS" } ] }, "description": "The Flight Inspiration Search REST/JSON API enables you get a list of destinations from a given origin (city or airport) and the cheapest price for each one. The API can tell you the price of flying from a given origin to some destination, for a trip of a given duration, that falls within a given date range." }, "response": [ { "name": "Flight Inspiration Search", "originalRequest": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=BOS", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-destinations" ], "query": [ { "key": "departureDate", "value": "2018-11-01", "disabled": true }, { "key": "origin", "value": "BOS" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Date", "value": "Fri, 12 Feb 2021 14:15:37 GMT" }, { "key": "Content-Type", "value": "application/vnd.amadeus+json" }, { "key": "Transfer-Encoding", "value": "chunked" }, { "key": "Connection", "value": "keep-alive" }, { "key": "Ama-Internal-Message-Version", "value": "14.1" }, { "key": "Ama-Request-Id", "value": "0001UN696OF6A1" }, { "key": "Content-Encoding", "value": "gzip" }, { "key": "Ama-Gateway-Request-Id", "value": "rrt-0aee208b554493479-b-eu-25955-255706369-2" }, { "key": "Access-Control-Allow-Headers", "value": "origin, x-requested-with, accept, Content-Type, Authorization" }, { "key": "Access-Control-Max-Age", "value": "3628800" }, { "key": "Access-Control-Allow-Methods", "value": "*" }, { "key": "Server", "value": "Amadeus" }, { "key": "Access-Control-Allow-Origin", "value": "*" } ], "cookie": [], "body": "{\n \"data\": [\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MIA\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-09\",\n \"price\": {\n \"total\": \"58.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MIA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MIA&departureDate=2021-03-08&returnDate=2021-03-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CHI\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-03-30\",\n \"price\": {\n \"total\": \"84.81\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CHI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CHI&departureDate=2021-03-29&returnDate=2021-03-30&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ORD\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"84.81\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ORD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ORD&departureDate=2021-03-30&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BWI\",\n \"departureDate\": \"2021-04-20\",\n \"returnDate\": \"2021-04-21\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BWI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BWI&departureDate=2021-04-20&returnDate=2021-04-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"EWR\",\n \"departureDate\": \"2021-04-20\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=EWR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=EWR&departureDate=2021-04-20&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NYC\",\n \"departureDate\": \"2021-04-15\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NYC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NYC&departureDate=2021-04-15&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"WAS\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-04-27\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=WAS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=WAS&departureDate=2021-04-26&returnDate=2021-04-27&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FLL\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-08\",\n \"price\": {\n \"total\": \"86.81\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FLL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FLL&departureDate=2021-03-01&returnDate=2021-03-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"JFK\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-10\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=JFK&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=JFK&departureDate=2021-03-08&returnDate=2021-03-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MCO\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MCO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MCO&departureDate=2021-03-15&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ORL\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ORL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ORL&departureDate=2021-03-15&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PHL\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PHL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PHL&departureDate=2021-04-07&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"RSW\",\n \"departureDate\": \"2021-02-23\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=RSW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=RSW&departureDate=2021-02-23&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TPA\",\n \"departureDate\": \"2021-03-11\",\n \"returnDate\": \"2021-03-15\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TPA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TPA&departureDate=2021-03-11&returnDate=2021-03-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DCA\",\n \"departureDate\": \"2021-04-13\",\n \"returnDate\": \"2021-04-14\",\n \"price\": {\n \"total\": \"98.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DCA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DCA&departureDate=2021-04-13&returnDate=2021-04-14&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"IAD\",\n \"departureDate\": \"2021-03-11\",\n \"returnDate\": \"2021-03-15\",\n \"price\": {\n \"total\": \"98.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=IAD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=IAD&departureDate=2021-03-11&returnDate=2021-03-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DFW\",\n \"departureDate\": \"2021-04-19\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"112.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DFW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DFW&departureDate=2021-04-19&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ATL\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"114.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ATL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ATL&departureDate=2021-04-14&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MSY\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"114.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MSY&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MSY&departureDate=2021-04-14&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MYR\",\n \"departureDate\": \"2021-02-22\",\n \"returnDate\": \"2021-02-25\",\n \"price\": {\n \"total\": \"114.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MYR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MYR&departureDate=2021-02-22&returnDate=2021-02-25&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MSP\",\n \"departureDate\": \"2021-04-22\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"116.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MSP&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MSP&departureDate=2021-04-22&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SJU\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"120.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SJU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SJU&departureDate=2021-03-15&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CLT\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"120.88\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CLT&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CLT&departureDate=2021-04-14&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LAS\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"122.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LAS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LAS&departureDate=2021-04-14&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"JAX\",\n \"departureDate\": \"2021-04-05\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"126.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=JAX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=JAX&departureDate=2021-04-05&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"AUS\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-06\",\n \"price\": {\n \"total\": \"146.40\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=AUS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=AUS&departureDate=2021-03-04&returnDate=2021-03-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"RDU\",\n \"departureDate\": \"2021-03-09\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"156.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=RDU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=RDU&departureDate=2021-03-09&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BNA\",\n \"departureDate\": \"2021-04-16\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"162.37\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BNA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BNA&departureDate=2021-04-16&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DEN\",\n \"departureDate\": \"2021-04-15\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"162.37\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DEN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DEN&departureDate=2021-04-15&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"STT\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"167.32\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=STT&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=STT&departureDate=2021-03-01&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PBI\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-09\",\n \"price\": {\n \"total\": \"171.39\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PBI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PBI&departureDate=2021-03-08&returnDate=2021-03-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LAX\",\n \"departureDate\": \"2021-02-24\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"174.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LAX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LAX&departureDate=2021-02-24&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CHS\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"186.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CHS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CHS&departureDate=2021-04-06&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CUN\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"187.56\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CUN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CUN&departureDate=2021-03-04&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PHX\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-04-29\",\n \"price\": {\n \"total\": \"188.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PHX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PHX&departureDate=2021-04-26&returnDate=2021-04-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HOU\",\n \"departureDate\": \"2021-04-16\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"190.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HOU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HOU&departureDate=2021-04-16&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"IAH\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"190.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=IAH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=IAH&departureDate=2021-04-14&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAN\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"190.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAN&departureDate=2021-04-14&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SRQ\",\n \"departureDate\": \"2021-02-20\",\n \"returnDate\": \"2021-02-27\",\n \"price\": {\n \"total\": \"196.20\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SRQ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SRQ&departureDate=2021-02-20&returnDate=2021-02-27&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SEA\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-09\",\n \"price\": {\n \"total\": \"196.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SEA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SEA&departureDate=2021-03-08&returnDate=2021-03-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAV\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"212.20\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAV&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAV&departureDate=2021-04-07&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SLC\",\n \"departureDate\": \"2021-03-22\",\n \"returnDate\": \"2021-03-23\",\n \"price\": {\n \"total\": \"218.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SLC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SLC&departureDate=2021-03-22&returnDate=2021-03-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"YTO\",\n \"departureDate\": \"2021-02-15\",\n \"returnDate\": \"2021-02-16\",\n \"price\": {\n \"total\": \"225.85\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=YTO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=YTO&departureDate=2021-02-15&returnDate=2021-02-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PDX\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-04-27\",\n \"price\": {\n \"total\": \"226.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PDX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PDX&departureDate=2021-04-26&returnDate=2021-04-27&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PUJ\",\n \"departureDate\": \"2021-04-19\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"228.45\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PUJ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PUJ&departureDate=2021-04-19&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"YYZ\",\n \"departureDate\": \"2021-05-09\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"234.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=YYZ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=YYZ&departureDate=2021-05-09&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SFO\",\n \"departureDate\": \"2021-03-31\",\n \"returnDate\": \"2021-04-08\",\n \"price\": {\n \"total\": \"236.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SFO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SFO&departureDate=2021-03-31&returnDate=2021-04-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BOG\",\n \"departureDate\": \"2021-03-11\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"263.75\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BOG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BOG&departureDate=2021-03-11&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"GUA\",\n \"departureDate\": \"2021-04-19\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"266.43\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=GUA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=GUA&departureDate=2021-04-19&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"AUA\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"272.35\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=AUA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=AUA&departureDate=2021-03-01&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MEX\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-05\",\n \"price\": {\n \"total\": \"273.30\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MEX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MEX&departureDate=2021-03-04&returnDate=2021-03-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAL\",\n \"departureDate\": \"2021-04-13\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"274.98\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAL&departureDate=2021-04-13&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LIM\",\n \"departureDate\": \"2021-06-01\",\n \"returnDate\": \"2021-06-02\",\n \"price\": {\n \"total\": \"277.39\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LIM&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LIM&departureDate=2021-06-01&returnDate=2021-06-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NAS\",\n \"departureDate\": \"2021-02-15\",\n \"returnDate\": \"2021-02-17\",\n \"price\": {\n \"total\": \"279.89\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NAS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NAS&departureDate=2021-02-15&returnDate=2021-02-17&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SDQ\",\n \"departureDate\": \"2021-03-10\",\n \"returnDate\": \"2021-03-15\",\n \"price\": {\n \"total\": \"280.95\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SDQ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SDQ&departureDate=2021-03-10&returnDate=2021-03-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SJO\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-08\",\n \"price\": {\n \"total\": \"285.33\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SJO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SJO&departureDate=2021-03-01&returnDate=2021-03-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BDA\",\n \"departureDate\": \"2021-06-01\",\n \"returnDate\": \"2021-06-07\",\n \"price\": {\n \"total\": \"295.43\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BDA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BDA&departureDate=2021-06-01&returnDate=2021-06-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MDE\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"300.85\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MDE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MDE&departureDate=2021-03-29&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"YVR\",\n \"departureDate\": \"2021-02-22\",\n \"returnDate\": \"2021-02-23\",\n \"price\": {\n \"total\": \"301.00\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=YVR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=YVR&departureDate=2021-02-22&returnDate=2021-02-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MBJ\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"311.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MBJ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MBJ&departureDate=2021-03-01&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"UIO\",\n \"departureDate\": \"2021-04-27\",\n \"returnDate\": \"2021-05-03\",\n \"price\": {\n \"total\": \"313.42\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=UIO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=UIO&departureDate=2021-04-27&returnDate=2021-05-03&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PLS\",\n \"departureDate\": \"2021-03-27\",\n \"returnDate\": \"2021-04-03\",\n \"price\": {\n \"total\": \"321.25\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PLS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PLS&departureDate=2021-03-27&returnDate=2021-04-03&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PAP\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-18\",\n \"price\": {\n \"total\": \"324.19\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PAP&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PAP&departureDate=2021-03-15&returnDate=2021-03-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"REK\",\n \"departureDate\": \"2021-02-19\",\n \"returnDate\": \"2021-02-24\",\n \"price\": {\n \"total\": \"327.67\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=REK&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=REK&departureDate=2021-02-19&returnDate=2021-02-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PTY\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"330.35\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PTY&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PTY&departureDate=2021-03-08&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"STI\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-10\",\n \"price\": {\n \"total\": \"344.45\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=STI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=STI&departureDate=2021-03-08&returnDate=2021-03-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"KEF\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-22\",\n \"price\": {\n \"total\": \"353.65\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=KEF&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=KEF&departureDate=2021-03-15&returnDate=2021-03-22&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"GRU\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-07\",\n \"price\": {\n \"total\": \"378.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=GRU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=GRU&departureDate=2021-04-06&returnDate=2021-04-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAO\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-07\",\n \"price\": {\n \"total\": \"378.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAO&departureDate=2021-04-06&returnDate=2021-04-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BRU\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"386.30\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BRU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BRU&departureDate=2021-04-07&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BER\",\n \"departureDate\": \"2021-02-22\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"390.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BER&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BER&departureDate=2021-02-22&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PDL\",\n \"departureDate\": \"2021-03-12\",\n \"returnDate\": \"2021-03-18\",\n \"price\": {\n \"total\": \"404.21\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PDL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PDL&departureDate=2021-03-12&returnDate=2021-03-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DUB\",\n \"departureDate\": \"2021-04-05\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"415.37\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DUB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DUB&departureDate=2021-04-05&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CDG\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"415.59\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CDG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CDG&departureDate=2021-03-30&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PAR\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"415.59\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PAR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PAR&departureDate=2021-03-30&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HNL\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-04\",\n \"price\": {\n \"total\": \"417.16\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HNL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HNL&departureDate=2021-05-03&returnDate=2021-05-04&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CPH\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-02\",\n \"price\": {\n \"total\": \"424.69\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CPH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CPH&departureDate=2021-03-29&returnDate=2021-04-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"AMS\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-23\",\n \"price\": {\n \"total\": \"426.02\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=AMS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=AMS&departureDate=2021-03-15&returnDate=2021-03-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ZRH\",\n \"departureDate\": \"2021-03-31\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"437.00\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ZRH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ZRH&departureDate=2021-03-31&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LON\",\n \"departureDate\": \"2021-03-22\",\n \"returnDate\": \"2021-03-26\",\n \"price\": {\n \"total\": \"451.39\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LON&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LON&departureDate=2021-03-22&returnDate=2021-03-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LGW\",\n \"departureDate\": \"2021-03-31\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"453.19\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LGW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LGW&departureDate=2021-03-31&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MAN\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-04-01\",\n \"price\": {\n \"total\": \"458.49\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MAN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MAN&departureDate=2021-03-24&returnDate=2021-04-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CWB\",\n \"departureDate\": \"2021-02-27\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"465.05\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CWB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CWB&departureDate=2021-02-27&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LHR\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-03-29\",\n \"price\": {\n \"total\": \"467.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LHR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LHR&departureDate=2021-03-24&returnDate=2021-03-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MUC\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"487.17\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MUC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MUC&departureDate=2021-03-29&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FRA\",\n \"departureDate\": \"2021-03-25\",\n \"returnDate\": \"2021-03-29\",\n \"price\": {\n \"total\": \"488.32\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FRA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FRA&departureDate=2021-03-25&returnDate=2021-03-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"OPO\",\n \"departureDate\": \"2021-04-01\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"504.51\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=OPO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=OPO&departureDate=2021-04-01&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BCN\",\n \"departureDate\": \"2021-04-02\",\n \"returnDate\": \"2021-04-07\",\n \"price\": {\n \"total\": \"506.56\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BCN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BCN&departureDate=2021-04-02&returnDate=2021-04-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"GVA\",\n \"departureDate\": \"2021-02-16\",\n \"returnDate\": \"2021-02-23\",\n \"price\": {\n \"total\": \"519.33\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=GVA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=GVA&departureDate=2021-02-16&returnDate=2021-02-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PRG\",\n \"departureDate\": \"2021-05-12\",\n \"returnDate\": \"2021-05-18\",\n \"price\": {\n \"total\": \"523.77\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PRG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PRG&departureDate=2021-05-12&returnDate=2021-05-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NAP\",\n \"departureDate\": \"2021-04-10\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"525.76\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NAP&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NAP&departureDate=2021-04-10&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"VCE\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"526.08\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=VCE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=VCE&departureDate=2021-04-06&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MIL\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-05-04\",\n \"price\": {\n \"total\": \"526.14\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MIL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MIL&departureDate=2021-04-26&returnDate=2021-05-04&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"RAI\",\n \"departureDate\": \"2021-03-02\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"529.08\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=RAI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=RAI&departureDate=2021-03-02&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SNN\",\n \"departureDate\": \"2021-08-06\",\n \"returnDate\": \"2021-08-16\",\n \"price\": {\n \"total\": \"542.72\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SNN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SNN&departureDate=2021-08-06&returnDate=2021-08-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"VIE\",\n \"departureDate\": \"2021-05-02\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"543.27\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=VIE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=VIE&departureDate=2021-05-02&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FCO\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"544.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FCO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FCO&departureDate=2021-05-03&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ROM\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"544.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ROM&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ROM&departureDate=2021-03-29&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LIS\",\n \"departureDate\": \"2021-06-16\",\n \"returnDate\": \"2021-06-21\",\n \"price\": {\n \"total\": \"546.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LIS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LIS&departureDate=2021-06-16&returnDate=2021-06-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CAI\",\n \"departureDate\": \"2021-02-14\",\n \"returnDate\": \"2021-02-17\",\n \"price\": {\n \"total\": \"556.11\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CAI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CAI&departureDate=2021-02-14&returnDate=2021-02-17&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TYO\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-05\",\n \"price\": {\n \"total\": \"559.26\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TYO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TYO&departureDate=2021-05-03&returnDate=2021-05-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MAD\",\n \"departureDate\": \"2021-04-05\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"562.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MAD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MAD&departureDate=2021-04-05&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NCE\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-19\",\n \"price\": {\n \"total\": \"569.99\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NCE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NCE&departureDate=2021-05-11&returnDate=2021-05-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"EDI\",\n \"departureDate\": \"2021-05-26\",\n \"returnDate\": \"2021-06-09\",\n \"price\": {\n \"total\": \"597.11\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=EDI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=EDI&departureDate=2021-05-26&returnDate=2021-06-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"WAW\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"599.33\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=WAW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=WAW&departureDate=2021-04-06&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FLR\",\n \"departureDate\": \"2021-05-08\",\n \"returnDate\": \"2021-05-13\",\n \"price\": {\n \"total\": \"607.25\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FLR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FLR&departureDate=2021-05-08&returnDate=2021-05-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NBO\",\n \"departureDate\": \"2021-02-19\",\n \"returnDate\": \"2021-02-21\",\n \"price\": {\n \"total\": \"613.13\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NBO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NBO&departureDate=2021-02-19&returnDate=2021-02-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ATH\",\n \"departureDate\": \"2021-03-26\",\n \"returnDate\": \"2021-03-30\",\n \"price\": {\n \"total\": \"627.07\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ATH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ATH&departureDate=2021-03-26&returnDate=2021-03-30&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TLV\",\n \"departureDate\": \"2021-05-04\",\n \"returnDate\": \"2021-05-12\",\n \"price\": {\n \"total\": \"629.16\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TLV&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TLV&departureDate=2021-05-04&returnDate=2021-05-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DEL\",\n \"departureDate\": \"2021-03-28\",\n \"returnDate\": \"2021-04-08\",\n \"price\": {\n \"total\": \"637.84\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DEL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DEL&departureDate=2021-03-28&returnDate=2021-04-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BOM\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-03-31\",\n \"price\": {\n \"total\": \"648.51\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BOM&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BOM&departureDate=2021-03-24&returnDate=2021-03-31&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BLR\",\n \"departureDate\": \"2021-05-13\",\n \"returnDate\": \"2021-05-15\",\n \"price\": {\n \"total\": \"656.03\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BLR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BLR&departureDate=2021-05-13&returnDate=2021-05-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BEY\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"665.76\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BEY&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BEY&departureDate=2021-03-04&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HKG\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"676.58\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HKG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HKG&departureDate=2021-04-07&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CMN\",\n \"departureDate\": \"2021-08-09\",\n \"returnDate\": \"2021-08-18\",\n \"price\": {\n \"total\": \"678.84\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CMN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CMN&departureDate=2021-08-09&returnDate=2021-08-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DXB\",\n \"departureDate\": \"2021-02-17\",\n \"returnDate\": \"2021-02-24\",\n \"price\": {\n \"total\": \"689.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DXB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DXB&departureDate=2021-02-17&returnDate=2021-02-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ACC\",\n \"departureDate\": \"2021-05-16\",\n \"returnDate\": \"2021-05-24\",\n \"price\": {\n \"total\": \"689.85\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ACC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ACC&departureDate=2021-05-16&returnDate=2021-05-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MAA\",\n \"departureDate\": \"2021-02-15\",\n \"returnDate\": \"2021-02-24\",\n \"price\": {\n \"total\": \"705.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MAA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MAA&departureDate=2021-02-15&returnDate=2021-02-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HYD\",\n \"departureDate\": \"2021-02-19\",\n \"returnDate\": \"2021-02-21\",\n \"price\": {\n \"total\": \"715.83\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HYD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HYD&departureDate=2021-02-19&returnDate=2021-02-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LOS\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"726.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LOS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LOS&departureDate=2021-05-03&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CPT\",\n \"departureDate\": \"2021-02-17\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"750.06\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CPT&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CPT&departureDate=2021-02-17&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MNL\",\n \"departureDate\": \"2021-05-12\",\n \"returnDate\": \"2021-05-20\",\n \"price\": {\n \"total\": \"769.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MNL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MNL&departureDate=2021-05-12&returnDate=2021-05-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SIN\",\n \"departureDate\": \"2021-05-07\",\n \"returnDate\": \"2021-05-14\",\n \"price\": {\n \"total\": \"771.10\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SIN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SIN&departureDate=2021-05-07&returnDate=2021-05-14&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"JNB\",\n \"departureDate\": \"2021-03-03\",\n \"returnDate\": \"2021-03-06\",\n \"price\": {\n \"total\": \"772.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=JNB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=JNB&departureDate=2021-03-03&returnDate=2021-03-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BJS\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-18\",\n \"price\": {\n \"total\": \"773.66\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BJS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BJS&departureDate=2021-05-11&returnDate=2021-05-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SGN\",\n \"departureDate\": \"2021-05-12\",\n \"returnDate\": \"2021-05-19\",\n \"price\": {\n \"total\": \"773.97\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SGN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SGN&departureDate=2021-05-12&returnDate=2021-05-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SHA\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-17\",\n \"price\": {\n \"total\": \"789.66\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SHA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SHA&departureDate=2021-05-11&returnDate=2021-05-17&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BKK\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"798.98\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BKK&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BKK&departureDate=2021-03-24&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TIA\",\n \"departureDate\": \"2021-02-21\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"803.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TIA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TIA&departureDate=2021-02-21&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"IST\",\n \"departureDate\": \"2021-02-25\",\n \"returnDate\": \"2021-03-05\",\n \"price\": {\n \"total\": \"810.06\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=IST&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=IST&departureDate=2021-02-25&returnDate=2021-03-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TPE\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-03-29\",\n \"price\": {\n \"total\": \"828.16\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TPE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TPE&departureDate=2021-03-24&returnDate=2021-03-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ICN\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"861.49\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ICN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ICN&departureDate=2021-03-30&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MLE\",\n \"departureDate\": \"2021-05-04\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"977.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MLE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MLE&departureDate=2021-05-04&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DPS\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-23\",\n \"price\": {\n \"total\": \"992.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DPS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DPS&departureDate=2021-05-11&returnDate=2021-05-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PVG\",\n \"departureDate\": \"2021-05-04\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"1208.40\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PVG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PVG&departureDate=2021-05-04&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SYD\",\n \"departureDate\": \"2021-05-09\",\n \"returnDate\": \"2021-05-16\",\n \"price\": {\n \"total\": \"1266.32\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SYD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SYD&departureDate=2021-05-09&returnDate=2021-05-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CAN\",\n \"departureDate\": \"2021-04-25\",\n \"returnDate\": \"2021-05-02\",\n \"price\": {\n \"total\": \"1427.25\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CAN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CAN&departureDate=2021-04-25&returnDate=2021-05-02&adults=1&nonStop=false\"\n }\n }\n ],\n \"dictionaries\": {\n \"currencies\": {\n \"USD\": \"US DOLLAR\"\n },\n \"locations\": {\n \"PVG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PUDONG INTL\"\n },\n \"JAX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JACKSONVILLE INTL\"\n },\n \"NAS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LYNDEN PINDLING INTL\"\n },\n \"BRU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BRUSSELS AIRPORT\"\n },\n \"CDG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHARLES DE GAULLE\"\n },\n \"HNL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DANIEL K INOUYE INTL\"\n },\n \"STI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CIBAO INTL\"\n },\n \"BJS\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"BEIJING\"\n },\n \"CLT\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DOUGLAS INTL\"\n },\n \"SLC\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SALT LAKE CITY INTL\"\n },\n \"ZRH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ZURICH AIRPORT\"\n },\n \"GUA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LA AURORA INTL\"\n },\n \"STT\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CYRIL E. KING\"\n },\n \"DFW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DALLAS FT WORTH INTL\"\n },\n \"NBO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOMO KENYATTA INTL\"\n },\n \"CUN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"SDQ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LAS AMERICAS INTL\"\n },\n \"BKK\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SUVARNABHUMI INTL\"\n },\n \"MIA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MIAMI INTL\"\n },\n \"CMN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MOHAMMED V\"\n },\n \"MYR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"LON\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"LONDON\"\n },\n \"BCN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AIRPORT\"\n },\n \"MAA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHENNAI INTERNATIONAL\"\n },\n \"KEF\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KEFLAVIK INTL\"\n },\n \"IAD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DULLES INTL\"\n },\n \"SEA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SEATTLE TACOMA INTL\"\n },\n \"DXB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DUBAI INTL\"\n },\n \"HOU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"WILLIAM P HOBBY\"\n },\n \"LOS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MURTALA MUHAMMED INTL\"\n },\n \"NCE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"COTE D AZUR\"\n },\n \"IAH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GEORGE BUSH INTERCONT\"\n },\n \"MIL\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"MILAN\"\n },\n \"MAD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ADOLFO SUAREZ BARAJAS\"\n },\n \"GVA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GENEVA INTERNATIONAL\"\n },\n \"FCO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FIUMICINO\"\n },\n \"RSW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SOUTHWEST FLORIDA INTL\"\n },\n \"VCE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MARCO POLO\"\n },\n \"UIO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MARISCAL SUCRE INTL\"\n },\n \"YYZ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LESTER B. PEARSON INTL\"\n },\n \"MAN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MANCHESTER AIRPORT\"\n },\n \"LGW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GATWICK\"\n },\n \"BDA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"L.F WADE INTERNATIONAL\"\n },\n \"TPA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TAMPA INTL\"\n },\n \"DPS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NGURAH RAI\"\n },\n \"FLL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FLL INTL\"\n },\n \"TPE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TAIWAN TAOYUAN INTL\"\n },\n \"BLR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KEMPEGOWDA INTL\"\n },\n \"FLR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PERETOLA\"\n },\n \"CWB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AFONSO PENA INTL\"\n },\n \"SNN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SHANNON\"\n },\n \"HYD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"RAJIV GANDHI INTL\"\n },\n \"MBJ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SANGSTER INTL\"\n },\n \"PHL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PHILADELPHIA INTL\"\n },\n \"LHR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HEATHROW\"\n },\n \"SFO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SAN FRANCISCO INTL\"\n },\n \"PHX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SKY HARBOR INTL\"\n },\n \"ACC\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KOTOKA INTL\"\n },\n \"RDU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"IST\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ISTANBUL AIRPORT\"\n },\n \"TYO\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"TOKYO\"\n },\n \"MSP\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ST PAUL INTL\"\n },\n \"TIA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NENE TEREZA INTL\"\n },\n \"BER\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BRANDENBURG\"\n },\n \"LIM\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JORGE CHAVEZ INTL\"\n },\n \"MSY\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LOUIS ARMSTRONG INTL\"\n },\n \"BNA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"ATH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ATHENS INT E VENIZELOS\"\n },\n \"ICN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INCHEON INTERNATIONAL\"\n },\n \"LIS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AIRPORT\"\n },\n \"BEY\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"RAFIC HARIRI INTL\"\n },\n \"MCO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ORLANDO INTL\"\n },\n \"ATL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HARTSFIELD-JACKSON INT\"\n },\n \"REK\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"REYKJAVIK\"\n },\n \"CPH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KASTRUP\"\n },\n \"SGN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TAN SON NHAT INTL\"\n },\n \"PAP\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TOUSSAINT LOUVERTURE\"\n },\n \"LAS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MCCARRAN INTERNATIONAL\"\n },\n \"JNB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"O.R. TAMBO INTL\"\n },\n \"PAR\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"PARIS\"\n },\n \"LAX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LOS ANGELES INTL\"\n },\n \"PRG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"RUZYNE\"\n },\n \"CHI\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"CHICAGO\"\n },\n \"CPT\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CAPE TOWN INTL\"\n },\n \"MLE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"VELANA INTERNATIONAL\"\n },\n \"EDI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AIRPORT\"\n },\n \"SHA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HONGQIAO INTL\"\n },\n \"AUA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"REINA BEATRIX\"\n },\n \"JFK\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOHN F KENNEDY INTL\"\n },\n \"MDE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOSE MARIA CORDOVA INT\"\n },\n \"OPO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FRANCISCO SA CARNEIRO\"\n },\n \"CHS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL AFB\"\n },\n \"BWI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BALTIMORE/WASH. INTL\"\n },\n \"YTO\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"TORONTO\"\n },\n \"PBI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PALM BEACH INTL\"\n },\n \"MUC\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MUNICH INTERNATIONAL\"\n },\n \"BOG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EL DORADO INTL\"\n },\n \"SYD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KINGSFORD SMITH\"\n },\n \"AUS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AUSTIN-BERGSTROM INTL\"\n },\n \"BOM\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHHATRAPATI S MAHARAJ\"\n },\n \"DCA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"R REAGAN NAT\"\n },\n \"HKG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"AMS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SCHIPHOL AIRPORT\"\n },\n \"BOS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EDWARD L LOGAN INTL\"\n },\n \"CAI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CAIRO INTL\"\n },\n \"ROM\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"ROME\"\n },\n \"CAN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BAIYUN INTL\"\n },\n \"SIN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHANGI\"\n },\n \"SAL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EL SALVADOR INTL\"\n },\n \"SAO\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"SAO PAULO\"\n },\n \"ORD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"O HARE INTERNATIONAL\"\n },\n \"MEX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BENITO JUAREZ INTL\"\n },\n \"SAN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"ORL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EXECUTIVE\"\n },\n \"WAS\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"WASHINGTON\"\n },\n \"SAV\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HILTON HEAD INTL\"\n },\n \"MNL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NINOY AQUINO INTL\"\n },\n \"GRU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GUARULHOS INTL\"\n },\n \"WAW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FREDERIC CHOPIN\"\n },\n \"DUB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DUBLIN INTERNATIONAL\"\n },\n \"SRQ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"PTY\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TOCUMEN INTL\"\n },\n \"YVR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"PLS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PROVIDENCIALES\"\n },\n \"SJO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JUAN SANTAMARIA INTL\"\n },\n \"NYC\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"NEW YORK\"\n },\n \"PDL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOAO PAULO II\"\n },\n \"TLV\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BEN GURION INTL\"\n },\n \"SJU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LUIS MUNOZ MARIN INTL\"\n },\n \"EWR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NEWARK LIBERTY INTL\"\n },\n \"PUJ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"PDX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PORTLAND INTL\"\n },\n \"DEL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INDIRA GANDHI INTL\"\n },\n \"DEN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DENVER INTERNATIONAL\"\n },\n \"VIE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SCHWECHAT INTL\"\n },\n \"FRA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FRANKFURT INTL\"\n },\n \"RAI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PRAIA INTL\"\n },\n \"NAP\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CAPODICHINO AIRPORT\"\n }\n }\n },\n \"meta\": {\n \"currency\": \"USD\",\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=BOS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DESTINATION\"\n },\n \"defaults\": {\n \"departureDate\": \"2021-02-13,2021-08-11\",\n \"oneWay\": false,\n \"duration\": \"1,15\",\n \"nonStop\": false,\n \"viewBy\": \"DESTINATION\"\n }\n }\n}" } ] }, { "name": "Flight Cheapest Date Search", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or No price results found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 404) {", " pm.expect(data.errors[0].code).to.equal(6003);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-dates?origin=MAD&destination=LON&departureDate={{departureDate}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-dates" ], "query": [ { "key": "origin", "value": "MAD" }, { "key": "destination", "value": "LON" }, { "key": "departureDate", "value": "{{departureDate}}" } ] }, "description": "The Flight Cheapest Date Search REST/JSON API is an open search API that enables you to find the cheapest dates to a given city or airport.\n\nThe API returns a list of flight-date options containing the flight dates and the flight price. Links to the Flight Low-fare Search API are also provided to allow you to confirm the price and availability of the fare." }, "response": [ { "name": "Flight Cheapest Date Search", "originalRequest": { "method": "GET", "header": [ { "key": "Accept", "value": "application/json", "disabled": true } ], "body": { "mode": "formdata", "formdata": [] }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/flight-dates?origin=NCE&destination=PAR&duration=1", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "flight-dates" ], "query": [ { "key": "origin", "value": "NCE" }, { "key": "destination", "value": "PAR" }, { "key": "duration", "value": "1" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Access-Control-Allow-Headers", "value": "origin, x-requested-with, accept, Content-Type, Authorization", "name": "Access-Control-Allow-Headers", "description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request." }, { "key": "Access-Control-Allow-Methods", "value": "*", "name": "Access-Control-Allow-Methods", "description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request." }, { "key": "Access-Control-Allow-Origin", "value": "*", "name": "Access-Control-Allow-Origin", "description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource." }, { "key": "Access-Control-Max-Age", "value": "3628800", "name": "Access-Control-Max-Age", "description": "Indicates how long the results of a preflight request can be cached in seconds." }, { "key": "Ama-Gateway-Request-Id", "value": "rrt-01702c60aa57acf29-a-de-955-12242362-2", "name": "Ama-Gateway-Request-Id", "description": "Custom header" }, { "key": "Ama-Internal-Message-Version", "value": "14.1", "name": "Ama-Internal-Message-Version", "description": "Custom header" }, { "key": "Ama-Request-Id", "value": "7L38L6PDKA", "name": "Ama-Request-Id", "description": "Custom header" }, { "key": "Connection", "value": "keep-alive", "name": "Connection", "description": "Options that are desired for the connection" }, { "key": "Content-Encoding", "value": "gzip", "name": "Content-Encoding", "description": "The type of encoding used on the data." }, { "key": "Content-Type", "value": "application/vnd.amadeus+json", "name": "Content-Type", "description": "The mime type of this content" }, { "key": "Date", "value": "Thu, 05 Apr 2018 08:14:34 GMT", "name": "Date", "description": "The date and time that the message was sent" }, { "key": "Server", "value": "Amadeus", "name": "Server", "description": "A name for the server" }, { "key": "Transfer-Encoding", "value": "chunked", "name": "Transfer-Encoding", "description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity." } ], "cookie": [], "body": "{\"data\":[{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-06\",\"returnDate\":\"2018-04-07\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-06&returnDate=2018-04-07&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-25\",\"returnDate\":\"2018-05-26\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-25&returnDate=2018-05-26&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-01\",\"returnDate\":\"2018-06-02\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-01&returnDate=2018-06-02&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-08\",\"returnDate\":\"2018-06-09\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-08&returnDate=2018-06-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-15\",\"returnDate\":\"2018-06-16\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-15&returnDate=2018-06-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-22\",\"returnDate\":\"2018-06-23\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-22&returnDate=2018-06-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-07\",\"returnDate\":\"2018-04-08\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-07&returnDate=2018-04-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-08\",\"returnDate\":\"2018-04-09\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-08&returnDate=2018-04-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-09\",\"returnDate\":\"2018-04-10\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-09&returnDate=2018-04-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-10\",\"returnDate\":\"2018-04-11\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-10&returnDate=2018-04-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-11\",\"returnDate\":\"2018-04-12\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-11&returnDate=2018-04-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-12\",\"returnDate\":\"2018-04-13\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-12&returnDate=2018-04-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-15\",\"returnDate\":\"2018-04-16\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-15&returnDate=2018-04-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-16\",\"returnDate\":\"2018-04-17\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-16&returnDate=2018-04-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-17\",\"returnDate\":\"2018-04-18\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-17&returnDate=2018-04-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-18\",\"returnDate\":\"2018-04-19\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-18&returnDate=2018-04-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-19\",\"returnDate\":\"2018-04-20\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-19&returnDate=2018-04-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-23\",\"returnDate\":\"2018-04-24\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-23&returnDate=2018-04-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-24\",\"returnDate\":\"2018-04-25\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-24&returnDate=2018-04-25&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-30\",\"returnDate\":\"2018-05-01\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-30&returnDate=2018-05-01&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-02\",\"returnDate\":\"2018-05-03\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-02&returnDate=2018-05-03&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-07\",\"returnDate\":\"2018-05-08\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-07&returnDate=2018-05-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-14\",\"returnDate\":\"2018-05-15\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-14&returnDate=2018-05-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-15\",\"returnDate\":\"2018-05-16\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-15&returnDate=2018-05-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-24\",\"returnDate\":\"2018-05-25\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-24&returnDate=2018-05-25&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-29\",\"returnDate\":\"2018-05-30\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-29&returnDate=2018-05-30&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-30\",\"returnDate\":\"2018-05-31\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-30&returnDate=2018-05-31&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-31\",\"returnDate\":\"2018-06-01\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-31&returnDate=2018-06-01&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-02\",\"returnDate\":\"2018-06-03\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-02&returnDate=2018-06-03&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-04\",\"returnDate\":\"2018-06-05\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-04&returnDate=2018-06-05&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-05\",\"returnDate\":\"2018-06-06\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-05&returnDate=2018-06-06&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-06\",\"returnDate\":\"2018-06-07\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-06&returnDate=2018-06-07&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-07\",\"returnDate\":\"2018-06-08\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-07&returnDate=2018-06-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-09\",\"returnDate\":\"2018-06-10\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-09&returnDate=2018-06-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-10\",\"returnDate\":\"2018-06-11\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-10&returnDate=2018-06-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-11\",\"returnDate\":\"2018-06-12\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-11&returnDate=2018-06-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-12\",\"returnDate\":\"2018-06-13\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-12&returnDate=2018-06-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-13\",\"returnDate\":\"2018-06-14\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-13&returnDate=2018-06-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-14\",\"returnDate\":\"2018-06-15\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-14&returnDate=2018-06-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-16\",\"returnDate\":\"2018-06-17\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-16&returnDate=2018-06-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-17\",\"returnDate\":\"2018-06-18\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-17&returnDate=2018-06-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-18\",\"returnDate\":\"2018-06-19\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-18&returnDate=2018-06-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-19\",\"returnDate\":\"2018-06-20\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-19&returnDate=2018-06-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-20\",\"returnDate\":\"2018-06-21\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-20&returnDate=2018-06-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-21\",\"returnDate\":\"2018-06-22\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-21&returnDate=2018-06-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-23\",\"returnDate\":\"2018-06-24\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-23&returnDate=2018-06-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-25\",\"returnDate\":\"2018-06-26\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-25&returnDate=2018-06-26&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-26\",\"returnDate\":\"2018-06-27\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-26&returnDate=2018-06-27&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-02\",\"returnDate\":\"2018-07-03\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-02&returnDate=2018-07-03&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-03\",\"returnDate\":\"2018-07-04\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-03&returnDate=2018-07-04&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-16\",\"returnDate\":\"2018-07-17\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-16&returnDate=2018-07-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-17\",\"returnDate\":\"2018-07-18\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-17&returnDate=2018-07-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-18\",\"returnDate\":\"2018-07-19\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-18&returnDate=2018-07-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-26\",\"returnDate\":\"2018-05-27\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-26&returnDate=2018-05-27&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-19\",\"returnDate\":\"2018-05-20\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-19&returnDate=2018-05-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-20\",\"returnDate\":\"2018-04-21\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-20&returnDate=2018-04-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-25\",\"returnDate\":\"2018-04-26\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-25&returnDate=2018-04-26&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-13\",\"returnDate\":\"2018-07-14\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-13&returnDate=2018-07-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-14\",\"returnDate\":\"2018-07-15\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-14&returnDate=2018-07-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-20\",\"returnDate\":\"2018-07-21\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-20&returnDate=2018-07-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-14\",\"returnDate\":\"2018-04-15\",\"price\":{\"total\":\"148.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-14&returnDate=2018-04-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-30\",\"returnDate\":\"2018-07-01\",\"price\":{\"total\":\"149.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-30&returnDate=2018-07-01&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-21\",\"returnDate\":\"2018-07-22\",\"price\":{\"total\":\"149.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-21&returnDate=2018-07-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-22\",\"returnDate\":\"2018-04-23\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-22&returnDate=2018-04-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-29\",\"returnDate\":\"2018-04-30\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-29&returnDate=2018-04-30&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-04\",\"returnDate\":\"2018-07-05\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-04&returnDate=2018-07-05&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-09\",\"returnDate\":\"2018-07-10\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-09&returnDate=2018-07-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-11\",\"returnDate\":\"2018-07-12\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-11&returnDate=2018-07-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-12\",\"returnDate\":\"2018-07-13\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-12&returnDate=2018-07-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-19\",\"returnDate\":\"2018-07-20\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-19&returnDate=2018-07-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-23\",\"returnDate\":\"2018-07-24\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-23&returnDate=2018-07-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-13\",\"returnDate\":\"2018-04-14\",\"price\":{\"total\":\"151.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-13&returnDate=2018-04-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-29\",\"returnDate\":\"2018-06-30\",\"price\":{\"total\":\"151.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-29&returnDate=2018-06-30&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-21\",\"returnDate\":\"2018-04-22\",\"price\":{\"total\":\"159.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-21&returnDate=2018-04-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-26\",\"returnDate\":\"2018-04-27\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-26&returnDate=2018-04-27&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-03\",\"returnDate\":\"2018-05-04\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-03&returnDate=2018-05-04&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-10\",\"returnDate\":\"2018-05-11\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-10&returnDate=2018-05-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-22\",\"returnDate\":\"2018-05-23\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-22&returnDate=2018-05-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-28\",\"returnDate\":\"2018-05-29\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-28&returnDate=2018-05-29&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-27\",\"returnDate\":\"2018-06-28\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-27&returnDate=2018-06-28&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-01\",\"returnDate\":\"2018-07-02\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-01&returnDate=2018-07-02&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-05\",\"returnDate\":\"2018-07-06\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-05&returnDate=2018-07-06&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-10\",\"returnDate\":\"2018-07-11\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-10&returnDate=2018-07-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-15\",\"returnDate\":\"2018-07-16\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-15&returnDate=2018-07-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-06\",\"returnDate\":\"2018-05-07\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-06&returnDate=2018-05-07&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-22\",\"returnDate\":\"2018-07-23\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-22&returnDate=2018-07-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-07\",\"returnDate\":\"2018-07-08\",\"price\":{\"total\":\"168.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-07&returnDate=2018-07-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-08\",\"returnDate\":\"2018-07-09\",\"price\":{\"total\":\"173.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-08&returnDate=2018-07-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-18\",\"returnDate\":\"2018-05-19\",\"price\":{\"total\":\"174.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-18&returnDate=2018-05-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-28\",\"returnDate\":\"2018-04-29\",\"price\":{\"total\":\"178.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-28&returnDate=2018-04-29&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-05\",\"returnDate\":\"2018-05-06\",\"price\":{\"total\":\"178.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-05&returnDate=2018-05-06&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-20\",\"returnDate\":\"2018-05-21\",\"price\":{\"total\":\"184.61\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-20&returnDate=2018-05-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-12\",\"returnDate\":\"2018-05-13\",\"price\":{\"total\":\"187.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-12&returnDate=2018-05-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-24\",\"returnDate\":\"2018-06-25\",\"price\":{\"total\":\"188.95\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-24&returnDate=2018-06-25&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-01\",\"returnDate\":\"2018-05-02\",\"price\":{\"total\":\"194.62\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-01&returnDate=2018-05-02&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-08\",\"returnDate\":\"2018-05-09\",\"price\":{\"total\":\"194.62\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-08&returnDate=2018-05-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-27\",\"returnDate\":\"2018-04-28\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-27&returnDate=2018-04-28&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-04\",\"returnDate\":\"2018-05-05\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-04&returnDate=2018-05-05&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-11\",\"returnDate\":\"2018-05-12\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-11&returnDate=2018-05-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-09\",\"returnDate\":\"2018-05-10\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-09&returnDate=2018-05-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-13\",\"returnDate\":\"2018-05-14\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-13&returnDate=2018-05-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-16\",\"returnDate\":\"2018-05-17\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-16&returnDate=2018-05-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-17\",\"returnDate\":\"2018-05-18\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-17&returnDate=2018-05-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-21\",\"returnDate\":\"2018-05-22\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-21&returnDate=2018-05-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-23\",\"returnDate\":\"2018-05-24\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-23&returnDate=2018-05-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-27\",\"returnDate\":\"2018-05-28\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-27&returnDate=2018-05-28&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-03\",\"returnDate\":\"2018-06-04\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-03&returnDate=2018-06-04&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-28\",\"returnDate\":\"2018-06-29\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-28&returnDate=2018-06-29&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-06\",\"returnDate\":\"2018-07-07\",\"price\":{\"total\":\"222.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-06&returnDate=2018-07-07&adults=1&nonStop=false\"}}],\"dictionaries\":{\"currencies\":{\"EUR\":\"EURO\"},\"locations\":{\"PAR\":{\"subType\":\"CITY\",\"detailedName\":\"PARIS\"},\"NCE\":{\"subType\":\"AIRPORT\",\"detailedName\":\"COTE D AZUR\"}}},\"meta\":{\"currency\":\"EUR\",\"links\":{\"self\":\"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=NCE&destination=PAR&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\"},\"defaults\":{\"departureDate\":\"2018-04-06,2018-10-02\",\"oneWay\":false,\"nonStop\":false,\"viewBy\":\"DURATION\"}}}" } ] }, { "name": "Flight Availabilities Search", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" }, { "key": "X-HTTP-Method-Override", "value": "GET", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"originDestinations\": [\n {\n \"id\": \"1\",\n \"originLocationCode\": \"BOS\",\n \"destinationLocationCode\": \"MAD\",\n \"departureDateTime\": {\n \"date\": \"{{departureDate}}\",\n \"time\": \"21:15:00\"\n }\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"travelerType\": \"ADULT\"\n },\n {\n \"id\": \"2\",\n \"travelerType\": \"CHILD\"\n }\n ],\n \"sources\": [\n \"GDS\"\n ]\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/availability/flight-availabilities", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "availability", "flight-availabilities" ] }, "description": "The Amadeus Flight Availability API provides a list of flights with seats for sale on a given itinerary and the quantity of seats available in different fare classes. In addition to availability, the API also returns carrier and aircraft information, the departure and arrival terminals, schedule, and route." }, "response": [] }, { "name": "Travel Recommendations", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/recommended-locations?cityCodes=PAR&travelerCountryCode=FR", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "recommended-locations" ], "query": [ { "key": "cityCodes", "value": "PAR" }, { "key": "travelerCountryCode", "value": "FR" } ] } }, "response": [] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Flight Schedule", "item": [ { "name": "On Demand Flight Status", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v2/schedule/flights?carrierCode=BA&flightNumber=986&scheduledDepartureDate={{departureDate}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "schedule", "flights" ], "query": [ { "key": "carrierCode", "value": "BA" }, { "key": "flightNumber", "value": "986" }, { "key": "scheduledDepartureDate", "value": "{{departureDate}}" } ] }, "description": "The Flight Status API provides real-time flight schedule data including up-to-date departure and arrival times, terminal and gate information, flight duration and real-time delay status. Help travelers track the live status of their flight and enjoy a stress-free trip." }, "response": [] }, { "name": "Flight Delay Prediction", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code\r", "pm.test(\"Response status code is 200\", function () {\r", " pm.response.to.have.status(200);\r", "});\r", "\r", "\r", "// Function to get header value by name with fallback\r", "function getHeaderValue(headerName, fallbackHeaderName) {\r", " let headers = pm.response.headers;\r", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r", "}\r", "\r", "// Log the specific headers\r", "console.log(\"Timestamp: \" + getHeaderValue('Date'));\r", "\r", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r", "console.log(headerName + \": \" + amaRequestId);\r", "\r", "// Set up\r", "// Get Response in variable\r", "const response = pm.response.json();\r", "\r", "// Get Query in variable\r", "let query = {};\r", "pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r", "\r", "// Create global variable\r", "let text_prediction = \"\";\r", "let text_value = \"\";\r", "let max_scale = 0;\r", "\r", "\r", "// process calculation only for succeful reply\r", "if (pm.response.status == \"OK\"){\r", "\r", " let prediction = [];\r", " let value = []\r", "\r", " // Get and order traffic data per month\r", " for (let i = 0; i < response.meta.count; i++) {\r", " prediction.push(parseFloat(response.data[i].probability).toFixed(2));\r", " value.push('\"' + response.data[i].result + '\"');\r", " };\r", "\r", " // Convert to text to be used by the template variable\r", " text_prediction = '[' + prediction.join() + ']';\r", " text_value = '[' + value.join() + ']';\r", " max_scale = Math.max(...prediction) + 0.2\r", "\r", "}\r", "\r", "// Define visualizer template\r", "let template_success = `\r", "<table style=\"width:50%\">\r", " <tr>\r", " <th>\r", " <canvas id=\"travelerTraffic\"></canvas>\r", " <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r", " <script src=\"https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2\"></script>\r", " <script> \r", " const labels = ${text_value}; \r", " const data = {\r", " labels: labels, \r", " datasets: [\r", " { \r", " label: \"Preidiction\", \r", " backgroundColor: \"rgba(0, 94, 184,0.4)\", \r", " borderColor: \"rgb(0, 94, 184)\", \r", " data: ${text_prediction},\r", " tension: 0.5,\r", " fill: true\r", " }\r", " ] \r", " };\r", " const config = { \r", " type: \"line\", \r", " data: data,\r", " plugins: [ChartDataLabels], \r", " options: {\r", " responsive: true,\r", " plugins: {\r", " legend: {\r", " position: 'top',\r", " display: false\r", " },\r", " title: {\r", " display: true,\r", " text: 'Delay prediction for flight ${query.carrierCode} ${query.flightNumber} from ${query.originLocationCode} to ${query.destinationLocationCode} on the ${query.departureDate}'\r", " },\r", " datalabels: {\r", " color: \"rgb(0, 94, 184)\",\r", " anchor: 'end',\r", " align: 'end',\r", " }\r", " },\r", " scales: {\r", " y: {\r", " min: 0,\r", " max: ${max_scale},\r", " }\r", " },\r", " } \r", " } \r", " </script> \r", " <script>\r", " const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config )\r", " </script\r", " </th>\r", " </tr>\r", "</table>\r", "`;\r", "\r", "let template_nodata = \"OUPS there is no data for this city or period\";\r", "\r", "let template_default = \"Sorry, we can't visualize\";\r", "\r", "// Set visualizer\r", "if (pm.response.status == \"OK\"){\r", " if (response.meta.count > 0){\r", " // When there is data, return a bar graph\r", " pm.visualizer.set(template_success, {\r", " response: pm.response.json()\r", " });\r", " }else{\r", " // when there is no data, return a message\r", " pm.visualizer.set(template_nodata, {\r", " response: pm.response.json()\r", " });\r", " }\r", "}else{\r", " // return a message when we can't visualise ( status =! 200 )\r", " pm.visualizer.set(template_default, {\r", " response: pm.response.json()\r", " });\r", "}" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/travel/predictions/flight-delay?originLocationCode=NCE&destinationLocationCode=IST&departureDate=2022-11-01&departureTime=18:20:00&arrivalDate=2022-11-01&arrivalTime=22:15:00&aircraftCode=321&carrierCode=TK&flightNumber=1816&duration=PT31H10M", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "travel", "predictions", "flight-delay" ], "query": [ { "key": "originLocationCode", "value": "NCE" }, { "key": "destinationLocationCode", "value": "IST" }, { "key": "departureDate", "value": "2022-11-01" }, { "key": "departureTime", "value": "18:20:00" }, { "key": "arrivalDate", "value": "2022-11-01" }, { "key": "arrivalTime", "value": "22:15:00" }, { "key": "aircraftCode", "value": "321" }, { "key": "carrierCode", "value": "TK" }, { "key": "flightNumber", "value": "1816" }, { "key": "duration", "value": "PT31H10M" } ] }, "description": "The Flight Delay Prediction API allows developers to forecast the chances for a flight to be delayed." }, "response": [] }, { "name": "Airport On-Time Performance", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/airport/predictions/on-time?airportCode=JFK&date=2022-11-01", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "airport", "predictions", "on-time" ], "query": [ { "key": "airportCode", "value": "JFK" }, { "key": "date", "value": "2022-11-01" } ] }, "description": "Returns a percentage of on-time flight departures from a given airport." }, "response": [] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Airport", "item": [ { "name": "Airport & City Search by Keyword", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations?subType=CITY,AIRPORT&keyword=MUC&countryCode=DE", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations" ], "query": [ { "key": "subType", "value": "CITY,AIRPORT" }, { "key": "keyword", "value": "MUC" }, { "key": "countryCode", "value": "DE" } ] }, "description": "The Airport & City Search REST/JSON API provides the full name, IATA code and geographical information of cities or airports that match a given keyword parameter, for use in flight searches.\n\nThe response provides a list of cities and/or airports, sorted by travellers' traffic score, which is based on the estimated yearly number of travellers by airport or city. Airports and cities with the highest traffic are at the top of the list.\n\nThis operation allows retrieving the list of locations (airports or cities) that contain a specific keyword in the start of any word in their name or in the start of their IATA code." }, "response": [] }, { "name": "Airport & City Search by Id", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "method": "GET", "header": [], "body": { "mode": "formdata", "formdata": [] }, "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/CMUC", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "CMUC" ] }, "description": "The Airport & City Search REST/JSON API provides the full name, IATA code and geographical information of cities or airports that match a given keyword parameter, for use in flight searches.\n\nThe response provides a list of cities and/or airports, sorted by travellers' traffic score, which is based on the estimated yearly number of travellers by airport or city. Airports and cities with the highest traffic are at the top of the list.\n\nThis operation allows retrieving a locations (airports or cities) based on its id." }, "response": [] }, { "name": "Airport Nearest Relevant", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "method": "GET", "header": [ { "key": "", "value": "", "disabled": true } ], "body": { "mode": "formdata", "formdata": [] }, "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/airports?latitude=49.0000&longitude=2.55", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "airports" ], "query": [ { "key": "latitude", "value": "49.0000" }, { "key": "longitude", "value": "2.55" }, { "key": "", "value": "", "disabled": true }, { "key": "", "value": "", "disabled": true }, { "key": "", "value": "", "disabled": true } ] }, "description": "The Airport Nearest Relevant REST/JSON API returns a list of relevant airports within a radius of 500 km of a given point. The relevance of an airport is based on the estimated yearly flight traffic of the airport and on the distance from the point. The airports are sorted from most relevant to least relevant by default. Other sorting possibilities are offered (by distance, by traffic score)." }, "response": [] }, { "name": "Airport Routes", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code\r", "pm.test(\"Response status code is 200\", function () {\r", " pm.response.to.have.status(200);\r", "});\r", "\r", "\r", "\r", "// Function to get header value by name with fallback\r", "function getHeaderValue(headerName, fallbackHeaderName) {\r", " let headers = pm.response.headers;\r", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r", "}\r", "\r", "// Log the specific headers\r", "console.log(\"Timestamp: \" + getHeaderValue('Date'));\r", "\r", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r", "console.log(headerName + \": \" + amaRequestId);\r", "\r", "\r", "var template = `\r", "<script src=\"https://d3js.org/d3.v5.min.js\"></script>\r", "<script src=\"https://unpkg.com/topojson@3\"></script>\r", "<style>\r", "body { \r", " background-color: white;\r", "}\r", ".title { \r", " font-size: 30px;\r", " font-family: \"Roboto\", sans-serif;\r", " text-align: center;\r", "}\r", ".container {\r", " display: flex;\r", " flex-direction: row;\r", " justify-content: center;\r", " align-items: center;\r", "}\r", ".directions {\r", " font-size: 18px;\r", " font-family: \"Roboto\", sans-serif;\r", " padding-left: 20px;\r", "}\r", "#backgroundRectangle {\r", " width: 100%;\r", " height: 100%;\r", " fill: #f5f5f5;\r", "}\r", ".projectionOutline{\r", " fill: #2f434a;\r", " stroke: #4e5f66\r", "}\r", ".tooltip {\r", " position: absolute;\r", " font-size: 12px;\r", " width: auto;\r", " height: auto;\r", " pointer-events: none;\r", " background-color: white;\r", " padding: 3px;\r", "}\r", "\r", "</style>\r", "<h1 class=\"title\"></h1>\r", "<div class=\"container\">\r", "<div id=\"map\"></div>\r", "<p class=\"directions\">Draw mouse to zoom in onto section. Double click to zoom out</p>\r", "</div>\r", "<script>\r", "\r", " pm.getData( function(err, value) {\r", " d3.select(\".title\").html(value.title);\r", " initVisualization(value.data);\r", " });\r", "\r", " // Function call that contains our visualization, necessary because we are loading an external map file\r", " async function initVisualization(pmInput){\r", " const response = await fetch(\"https://unpkg.com/world-atlas@1.1.4/world/110m.json\");\r", " response.json().then( data => {\r", " generateVisualization(pmInput, data);\r", " });\r", " }\r", " \r", " // Generates d3 map visualization using an external map file and user-inputed data\r", " // Utilizes d3.zoom and d3.brush\r", " function generateVisualization(pmInput, mapData){\r", " // Set the dimensions and margins of the graph\r", " const margins = {top: 20, left: 10, right: 20, bottom: 20};\r", " const width = 800 - margins.top - margins.bottom;\r", " const height = 500 - margins.left - margins.right;\r", " \r", " // Initializes d3.zoom to cover entire map SVG\r", " const zoom = d3.zoom()\r", " .scaleExtent([1,40])\r", " .translateExtent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r", " .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r", " .on(\"zoom\", () =>{\r", " d3.select(\"#map-group\").attr(\"transform\", d3.event.transform)\r", " })\r", " \r", " // Initiaizes d3.brush to cover entire map SVG and zoom in on the selected window\r", " let brush = d3.brush()\r", " .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r", " .on(\"end\", () => {\r", " let extent = d3.event.selection;\r", " if(extent){\r", " d3.select(\"#map-group\").call(brush.move, null);\r", " d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r", " .scale( (width + margins.left + margins.right)/ (extent[1][0]-extent[0][0]) )\r", " .translate( -extent[0][0], -extent[0][1] ));\r", " d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r", " .attr(\"r\", d => { return 2 * d.circleSize * (extent[1][0]-extent[0][0])/(width + margins.left + margins.right);} )\r", " .attr(\"stroke-width\", (extent[1][0]-extent[0][0])/(width + margins.left + margins.right));\r", " \r", " }\r", " else{\r", " d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r", " .scale( 1 )\r", " .translate( 0,0 ));\r", " d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r", " .attr(\"r\", d => d.circleSize)\r", " .attr(\"stroke-width\", 1);\r", " }\r", " });\r", " \r", " // Set the dimensions and margins of the graph\r", " let svg = d3.select(\"#map\")\r", " .append(\"svg\") \r", " .attr(\"width\", width + margins.left + margins.right)\r", " .attr(\"height\", height + margins.top + margins.bottom)\r", " svg.append(\"rect\")\r", " .attr(\"id\", \"backgroundRectangle\");\r", " svg = svg.append(\"g\")\r", " .attr(\"id\", \"map-group\")\r", " .call(brush);\r", " \r", " // Draws Mercator projection of map onto SVG using the inputted map file\r", " let projection = d3.geoMercator().translate([400, 350]).scale(125);\r", " var mapGroup = svg.append(\"g\");\r", " let mapPath = d3.geoPath().projection(projection);\r", " mapGroup.selectAll(\"path\")\r", " .data(topojson.feature(mapData, mapData.objects.countries).features)\r", " .enter()\r", " .append(\"path\")\r", " .attr(\"d\", mapPath)\r", " .attr(\"class\", \"projectionOutline\");\r", " \r", " // Calculate offset for tooltip\r", " const rect = document.getElementById(\"map\").getBoundingClientRect();\r", " const offset = {top: rect.top, left: rect.left};\r", " \r", " // Create hover tooltip\r", " let tooltip = d3.select(\"#map\").append(\"div\")\r", " .attr(\"class\", \"tooltip\");\r", " // tooltip mouseover event handler\r", " let tipMouseover = function(d){\r", " tooltip.html(\"Name: <b>\" + d.name + \"</b><br/>Country: <b>\" + d.countr + \"</b><br/>IataCode: <b>\" + d.iataCode + \"</b><br/>Relevance: <b>\" + d.relevance + \"</b><br/>Longitude: <b>\" + d.long + \"</b><br/>Latitude: <b>\" + d.lat + \"</b>\")\r", " .style(\"left\", (d3.event.pageX + 15 - offset.left) + \"px\")\r", " .style(\"top\", (d3.event.pageY - 20 - offset.top) + \"px\")\r", " .transition()\r", " .duration(200) // ms\r", " .style(\"opacity\", 0.9)\r", " d3.select(this)\r", " .style(\"stroke\", \"white\")\r", " .style(\"opacity\", 1);\r", " };\r", " // tooltip mouseout event handler\r", " let tipMouseout = function(d){\r", " tooltip.transition()\r", " .duration(300)\r", " .style(\"opacity\", 0);\r", " d3.select(this)\r", " .style(\"stroke\", \"none\")\r", " .style(\"opacity\", 0.6);\r", " };\r", " \r", " // Appends points from user-inputted data onto map\r", " svg.selectAll(\"circle\")\r", " .data(pmInput)\r", " .enter()\r", " .append(\"circle\")\r", " .attr(\"r\", 0)\r", " .style(\"fill\", d => d.color)\r", " .attr(\"cx\", d => projection([d.long, d.lat])[0])\r", " .attr(\"cy\", d => projection([d.long, d.lat])[1])\r", " .style(\"opacity\", 0.6)\r", " .on(\"mouseover\", tipMouseover)\r", " .on(\"mouseout\", tipMouseout)\r", " .transition(d3.transition().duration(1000).ease(d3.easeQuadOut))\r", " .attr(\"r\", d => d.circleSize)\r", " }\r", "</script>\r", "`;\r", "\r", "var response = pm.response.json();\r", "var query = pm.request.url.getQueryString();\r", "let parsedData = [];\r", "\r", "//data parsing\r", "for (let destination of response.data){\r", " let tempEntry = {};\r", " tempEntry.lat = destination.geoCode.latitude;\r", " tempEntry.long = destination.geoCode.longitude;\r", " tempEntry.circleSize = 2\r", "// tempEntry.circleSize = Math.abs(Math.ceil(destination.analytics.travelers.score));\r", " tempEntry.color = \"#EAFC39\";\r", " tempEntry.name = destination.name;\r", "\ttempEntry.countr = destination.address.countryName;\r", " tempEntry.iataCode = destination.iataCode;\r", " tempEntry.relevance = 0\r", " if (destination.metrics && destination.metrics.relevance) {\r", " tempEntry.relevance = destination.metrics.relevance;\r", " }\r", " parsedData.push(tempEntry);\r", "}\r", "\r", "pm.visualizer.set(template, {\r", " data: parsedData,\r", " title: \"For \" + query +\" : Map of \" + response.meta.count + \" Destinations\"\r", "});\r", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/airport/direct-destinations?departureAirportCode=MAD&max=2", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "airport", "direct-destinations" ], "query": [ { "key": "departureAirportCode", "value": "MAD", "description": "Departure Airport code following IATA standard" }, { "key": "max", "value": "2", "description": "Maximum number of destination in the response." } ] }, "description": "The Amadeus Airport Routes API helps you find all destinations served by a given airport." }, "response": [] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Airlines", "item": [ { "name": "Flight Check-in Links", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v2/reference-data/urls/checkin-links?airlineCode=IB", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "reference-data", "urls", "checkin-links" ], "query": [ { "key": "airlineCode", "value": "IB" } ] }, "description": "The Flight Check-in Links REST/JSON API helps simplify the check-in process for your users by providing direct access to the airline’s check-in page. The following search parameters are required:\n\n- Provider code: airline code\n- Check-in page language" }, "response": [] }, { "name": "Airline Code Lookup", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/airlines?airlineCodes=BA,AIC,AIE", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "airlines" ], "query": [ { "key": "airlineCodes", "value": "BA,AIC,AIE" } ] }, "description": "This API returns the airline name and code." }, "response": [] }, { "name": "Airline Routes", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code\r", "pm.test(\"Response status code is 200\", function () {\r", " pm.response.to.have.status(200);\r", "});\r", "\r", "\r", "\r", "// Function to get header value by name with fallback\r", "function getHeaderValue(headerName, fallbackHeaderName) {\r", " let headers = pm.response.headers;\r", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r", "}\r", "\r", "// Log the specific headers\r", "console.log(\"Timestamp: \" + getHeaderValue('Date'));\r", "\r", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r", "console.log(headerName + \": \" + amaRequestId);\r", "\r", "\r", "var template = `\r", "<script src=\"https://d3js.org/d3.v5.min.js\"></script>\r", "<script src=\"https://unpkg.com/topojson@3\"></script>\r", "<style>\r", "body { \r", " background-color: white;\r", "}\r", ".title { \r", " font-size: 30px;\r", " font-family: \"Roboto\", sans-serif;\r", " text-align: center;\r", "}\r", ".container {\r", " display: flex;\r", " flex-direction: row;\r", " justify-content: center;\r", " align-items: center;\r", "}\r", ".directions {\r", " font-size: 18px;\r", " font-family: \"Roboto\", sans-serif;\r", " padding-left: 20px;\r", "}\r", "#backgroundRectangle {\r", " width: 100%;\r", " height: 100%;\r", " fill: #f5f5f5;\r", "}\r", ".projectionOutline{\r", " fill: #2f434a;\r", " stroke: #4e5f66\r", "}\r", ".tooltip {\r", " position: absolute;\r", " font-size: 12px;\r", " width: auto;\r", " height: auto;\r", " pointer-events: none;\r", " background-color: white;\r", " padding: 3px;\r", "}\r", "\r", "</style>\r", "<h1 class=\"title\"></h1>\r", "<div class=\"container\">\r", "<div id=\"map\"></div>\r", "<p class=\"directions\">Draw mouse to zoom in onto section. Double click to zoom out</p>\r", "</div>\r", "<script>\r", "\r", " pm.getData( function(err, value) {\r", " d3.select(\".title\").html(value.title);\r", " initVisualization(value.data);\r", " });\r", "\r", " // Function call that contains our visualization, necessary because we are loading an external map file\r", " async function initVisualization(pmInput){\r", " const response = await fetch(\"https://unpkg.com/world-atlas@1.1.4/world/110m.json\");\r", " response.json().then( data => {\r", " generateVisualization(pmInput, data);\r", " });\r", " }\r", " \r", " // Generates d3 map visualization using an external map file and user-inputed data\r", " // Utilizes d3.zoom and d3.brush\r", " function generateVisualization(pmInput, mapData){\r", " // Set the dimensions and margins of the graph\r", " const margins = {top: 20, left: 10, right: 20, bottom: 20};\r", " const width = 800 - margins.top - margins.bottom;\r", " const height = 500 - margins.left - margins.right;\r", " \r", " // Initializes d3.zoom to cover entire map SVG\r", " const zoom = d3.zoom()\r", " .scaleExtent([1,40])\r", " .translateExtent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r", " .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r", " .on(\"zoom\", () =>{\r", " d3.select(\"#map-group\").attr(\"transform\", d3.event.transform)\r", " })\r", " \r", " // Initiaizes d3.brush to cover entire map SVG and zoom in on the selected window\r", " let brush = d3.brush()\r", " .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r", " .on(\"end\", () => {\r", " let extent = d3.event.selection;\r", " if(extent){\r", " d3.select(\"#map-group\").call(brush.move, null);\r", " d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r", " .scale( (width + margins.left + margins.right)/ (extent[1][0]-extent[0][0]) )\r", " .translate( -extent[0][0], -extent[0][1] ));\r", " d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r", " .attr(\"r\", d => { return 2 * d.circleSize * (extent[1][0]-extent[0][0])/(width + margins.left + margins.right);} )\r", " .attr(\"stroke-width\", (extent[1][0]-extent[0][0])/(width + margins.left + margins.right));\r", " \r", " }\r", " else{\r", " d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r", " .scale( 1 )\r", " .translate( 0,0 ));\r", " d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r", " .attr(\"r\", d => d.circleSize)\r", " .attr(\"stroke-width\", 1);\r", " }\r", " });\r", " \r", " // Set the dimensions and margins of the graph\r", " let svg = d3.select(\"#map\")\r", " .append(\"svg\") \r", " .attr(\"width\", width + margins.left + margins.right)\r", " .attr(\"height\", height + margins.top + margins.bottom)\r", " svg.append(\"rect\")\r", " .attr(\"id\", \"backgroundRectangle\");\r", " svg = svg.append(\"g\")\r", " .attr(\"id\", \"map-group\")\r", " .call(brush);\r", " \r", " // Draws Mercator projection of map onto SVG using the inputted map file\r", " let projection = d3.geoMercator().translate([400, 350]).scale(125);\r", " var mapGroup = svg.append(\"g\");\r", " let mapPath = d3.geoPath().projection(projection);\r", " mapGroup.selectAll(\"path\")\r", " .data(topojson.feature(mapData, mapData.objects.countries).features)\r", " .enter()\r", " .append(\"path\")\r", " .attr(\"d\", mapPath)\r", " .attr(\"class\", \"projectionOutline\");\r", " \r", " // Calculate offset for tooltip\r", " const rect = document.getElementById(\"map\").getBoundingClientRect();\r", " const offset = {top: rect.top, left: rect.left};\r", " \r", " // Create hover tooltip\r", " let tooltip = d3.select(\"#map\").append(\"div\")\r", " .attr(\"class\", \"tooltip\");\r", " // tooltip mouseover event handler\r", " let tipMouseover = function(d){\r", " tooltip.html(\"Name: <b>\" + d.name + \"</b><br/>Country: <b>\" + d.countr + \"</b><br/>IataCode: <b>\" + d.iataCode + \"</b><br/>Relevance: <b>\" + d.relevance + \"</b><br/>Longitude: <b>\" + d.long + \"</b><br/>Latitude: <b>\" + d.lat + \"</b>\")\r", " .style(\"left\", (d3.event.pageX + 15 - offset.left) + \"px\")\r", " .style(\"top\", (d3.event.pageY - 20 - offset.top) + \"px\")\r", " .transition()\r", " .duration(200) // ms\r", " .style(\"opacity\", 0.9)\r", " d3.select(this)\r", " .style(\"stroke\", \"white\")\r", " .style(\"opacity\", 1);\r", " };\r", " // tooltip mouseout event handler\r", " let tipMouseout = function(d){\r", " tooltip.transition()\r", " .duration(300)\r", " .style(\"opacity\", 0);\r", " d3.select(this)\r", " .style(\"stroke\", \"none\")\r", " .style(\"opacity\", 0.6);\r", " };\r", " \r", " // Appends points from user-inputted data onto map\r", " svg.selectAll(\"circle\")\r", " .data(pmInput)\r", " .enter()\r", " .append(\"circle\")\r", " .attr(\"r\", 0)\r", " .style(\"fill\", d => d.color)\r", " .attr(\"cx\", d => projection([d.long, d.lat])[0])\r", " .attr(\"cy\", d => projection([d.long, d.lat])[1])\r", " .style(\"opacity\", 0.6)\r", " .on(\"mouseover\", tipMouseover)\r", " .on(\"mouseout\", tipMouseout)\r", " .transition(d3.transition().duration(1000).ease(d3.easeQuadOut))\r", " .attr(\"r\", d => d.circleSize)\r", " }\r", "</script>\r", "`;\r", "\r", "var response = pm.response.json();\r", "var query = pm.request.url.getQueryString();\r", "let parsedData = [];\r", "\r", "//data parsing\r", "for (let destination of response.data){\r", " let tempEntry = {};\r", " tempEntry.lat = destination.geoCode.latitude;\r", " tempEntry.long = destination.geoCode.longitude;\r", " tempEntry.circleSize = 2\r", "// tempEntry.circleSize = Math.abs(Math.ceil(destination.analytics.travelers.score));\r", " tempEntry.color = \"#EAFC39\";\r", " tempEntry.name = destination.name;\r", "\ttempEntry.countr = destination.address.countryName;\r", " tempEntry.iataCode = destination.iataCode;\r", " tempEntry.relevance = 0;\r", " \r", " if (destination.metrics && destination.metrics.relevance !== undefined) {\r", " tempEntry.relevance = destination.metrics.relevance;\r", " }\r", " \r", " parsedData.push(tempEntry);\r", "}\r", "\r", "pm.visualizer.set(template, {\r", " data: parsedData,\r", " title: \"For \" + query +\" : Map of \" + response.meta.count + \" Destinations\"\r", "});\r", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/airline/destinations?airlineCode=AF&max=2", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "airline", "destinations" ], "query": [ { "key": "airlineCode", "value": "AF", "description": "Airline code following IATA standard" }, { "key": "max", "value": "2", "description": "Maximum number of destinations in the response.\n\n" } ] }, "description": "The Amadeus Airline Routes API helps you find all destinations served by a given airline. Provide the IATA code of an airline and the API will retrieve a list of all destination cities along with their names and IATA codes.\n\n**This API answers the question:**\n\n*\"What destinations are served by this airline?\"*" }, "response": [] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] } ], "description": "This section contains APIs related with Air content: Search & Shopping, Travel Intelligence and Utilities.", "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{access_token}}", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Destination experiences", "item": [ { "name": "Tours and Activities", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or No response found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 404) {", " pm.expect(data.errors[0].code).to.equal(1797);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "", "var template = `", "<span style=\"font-weight: bold;\">Total number of tours & activities: {{response.meta.count}}</span>", "<table>", " {{#each response.data}}", " <tr>", " <td>Id: {{id}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Name</th>", " <th>Price</th> ", " <th>Book here</th> ", " </tr>", " <tr>", " <td>{{name}}</td>", " <td>{{price.amount}}</td>", " <td>{{bookingLink}}</td>", " </tr>", " <table>", " </tr>", " {{/each}}", "</table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/shopping/activities?latitude=41.397158&longitude=2.160873&radius=1", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "activities" ], "query": [ { "key": "latitude", "value": "41.397158" }, { "key": "longitude", "value": "2.160873" }, { "key": "radius", "value": "1" } ] }, "description": "The Tours and Activities API helps you search and book activities, sightseeing tours, day trips and museum tickets in over 8,000 destinations around the world." }, "response": [] }, { "name": "Tours and Activities by Id", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or No response found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 404) {", " pm.expect(data.errors[0].code).to.equal(1797);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "", "", "var template = `", "<table>", " <tr>", " <td>Id: {{response.data.id}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Name</th>", " <th>Price</th>", " <th>Book here</th> ", " </tr>", " <tr>", " <td>{{response.data.name}}</td>", " <td>{{response.data.price.amount}}</td>", " <td>{{response.bookingLink}}</td>", " </tr>", " <table>", " </tr>", "</table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/shopping/activities/4615", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "activities", "4615" ] }, "description": "Returns a Tour or Activity given an Id." }, "response": [] }, { "name": "Tours and Activities by square", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or No response found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 404) {", " pm.expect(data.errors[0].code).to.equal(1797);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "", "", "var template = `", "<span style=\"font-weight: bold;\">Total number of tours & activities: {{response.meta.count}}</span>", "<table>", " {{#each response.data}}", " <tr>", " <td>Id: {{id}}</td>", " <tr bgcolor=\"#005EB8\" style=\"color: white;\">", " <th>Name</th>", " <th>Price</th> ", " <th>Book here</th> ", " </tr>", " <tr>", " <td>{{name}}</td>", " <td>{{price.amount}}</td>", " <td>{{bookingLink}}</td>", " </tr>", " <table>", " </tr>", " {{/each}}", "</table>", "`;", "// Set visualizer", "pm.visualizer.set(template, {", " // Pass the response body parsed as JSON as `data`", " response: pm.response.json()", "});", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/shopping/activities/by-square?north=41.397158&west=2.160873&south=41.394582&east=2.177181", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "activities", "by-square" ], "query": [ { "key": "north", "value": "41.397158" }, { "key": "west", "value": "2.160873" }, { "key": "south", "value": "41.394582" }, { "key": "east", "value": "2.177181" } ] }, "description": "Returns a Tour or Activity given an area." }, "response": [] }, { "name": "City Search", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/cities?countryCode=FR&keyword=PARIS&max=10&include=AIRPORTS", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "cities" ], "query": [ { "key": "countryCode", "value": "FR" }, { "key": "keyword", "value": "PARIS" }, { "key": "max", "value": "10" }, { "key": "include", "value": "AIRPORTS" } ] } }, "response": [] } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{access_token}}", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Car and Transfers", "item": [ { "name": "Transfer Search", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"startLocationCode\": \"CDG\",\n \"endAddressLine\": \"Avenue Anatole France, 5\",\n \"endCityName\": \"Paris\",\n \"endZipCode\": \"75007\",\n \"endCountryCode\": \"FR\",\n \"endName\": \"Souvenirs De La Tour\",\n \"endGeoCode\": \"48.859466,2.2976965\",\n \"transferType\": \"PRIVATE\",\n \"startDateTime\": \"{{startDateTime}}\",\n \"passengers\": 2,\n \"stopOvers\": [\n {\n \"duration\": \"PT2H30M\",\n \"sequenceNumber\": 1,\n \"addressLine\": \"Avenue de la Bourdonnais, 19\",\n \"countryCode\": \"FR\",\n \"cityName\": \"Paris\",\n \"zipCode\": \"75007\",\n \"name\": \"De La Tours\",\n \"geoCode\": \"48.859477,2.2976985\",\n \"stateCode\": \"FR\"\n }\n ],\n \"startConnectedSegment\": {\n \"transportationType\": \"FLIGHT\",\n \"transportationNumber\": \"AF380\",\n \"departure\": {\n \"localDateTime\": \"2025-07-10T09:00:00\",\n \"iataCode\": \"NCE\"\n },\n \"arrival\": {\n \"localDateTime\": \"2025-07-10T10:00:00\",\n \"iataCode\": \"CDG\"\n }\n },\n \"passengerCharacteristics\": [\n {\n \"passengerTypeCode\": \"ADT\",\n \"age\": 20\n },\n {\n \"passengerTypeCode\": \"CHD\",\n \"age\": 10\n }\n ]\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/shopping/transfer-offers", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "shopping", "transfer-offers" ] }, "description": "Handling booking confirmations from different providers can be tricky as there is no standard format used across the industry. The Trip Parser API makes it easy to extract information from different booking confirmation emails and compile it into a single structured JSON itinerary. The API can parse information from flight, hotel, rail and rental car confirmation mails. The API has three endpoints - the first creates a parsing request, the second checks the request status and the third retrieves the parsing results." }, "response": [] }, { "name": "Transfer Booking", "event": [ { "listen": "test", "script": { "exec": [ "let response = pm.response.json();", "// Check for the presence of the 'errors' array", "if (!response.errors) {", " // Ensure the 'data' array exists and has at least one element", " if (response.data && response.data.length > 0) {", " // Check if the first element in the 'data' array is of type \"transfer-order\"", " if (response.data[0].type === \"transfer-order\") {", " // Set 'transferOrderId' variable", " pm.collectionVariables.set(\"transferOrderId\", response.data[0].id);", " // Set 'transferConfirmNbr' variable", " pm.collectionVariables.set(\"transferConfirmNbr\", response.data[0].transfers.confirmNbr);", " }", " }", "}", "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"note\": \"Note to driver\",\n \"passengers\": [\n {\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"title\": \"MR\",\n \"contacts\": {\n \"phoneNumber\": \"+33123456789\",\n \"email\": \"user@email.com\"\n },\n \"billingAddress\": {\n \"line\": \"Avenue de la Bourdonnais, 19\",\n \"zip\": \"75007\",\n \"countryCode\": \"FR\",\n \"cityName\": \"Paris\"\n }\n }\n ],\n \"agency\": {\n \"contacts\": [\n {\n \"email\": {\n \"address\": \"abc@test.com\"\n }\n }\n ]\n },\n \"payment\": {\n \"methodOfPayment\": \"CREDIT_CARD\",\n \"creditCard\": {\n \"number\": \"4111111111111111\",\n \"holderName\": \"JOHN DOE\",\n \"vendorCode\": \"VI\",\n \"expiryDate\": \"0928\",\n \"cvv\": \"111\"\n }\n },\n \"extraServices\": [\n {\n \"code\": \"EWT\",\n \"itemId\": \"EWT0291\"\n }\n ],\n \"equipment\": [\n {\n \"code\": \"BBS\"\n }\n ],\n \"corporation\": {\n \"address\": {\n \"line\": \"5 Avenue Anatole France\",\n \"zip\": \"75007\",\n \"countryCode\": \"FR\",\n \"cityName\": \"Paris\"\n },\n \"info\": {\n \"AU\": \"FHOWMD024\",\n \"CE\": \"280421GH\"\n }\n },\n \"startConnectedSegment\": {\n \"transportationType\": \"FLIGHT\",\n \"transportationNumber\": \"AF380\",\n \"departure\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n },\n \"arrival\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n }\n },\n \"endConnectedSegment\": {\n \"transportationType\": \"FLIGHT\",\n \"transportationNumber\": \"AF380\",\n \"departure\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n },\n \"arrival\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n }\n }\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/ordering/transfer-orders?offerId={{transferOfferId}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "ordering", "transfer-orders" ], "query": [ { "key": "offerId", "value": "{{transferOfferId}}", "description": "transfer offer id from shopping/transfer-offers response" } ] }, "description": "Handling booking confirmations from different providers can be tricky as there is no standard format used across the industry. The Trip Parser API makes it easy to extract information from different booking confirmation emails and compile it into a single structured JSON itinerary. The API can parse information from flight, hotel, rail and rental car confirmation mails. The API has three endpoints - the first creates a parsing request, the second checks the request status and the third retrieves the parsing results." }, "response": [] }, { "name": "Transfer Management", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "type": "text" } ], "body": { "mode": "raw", "raw": "" }, "url": { "raw": "https://test.api.amadeus.com/v1/ordering/transfer-orders/{{transferOrderId}}/transfers/cancellation?confirmNbr={{transferConfirmNbr}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "ordering", "transfer-orders", "{{transferOrderId}}", "transfers", "cancellation" ], "query": [ { "key": "confirmNbr", "value": "{{transferConfirmNbr}}", "description": "transfer identifier - confirmation number from transfer supplier that identifies the ride" } ] }, "description": "Handling booking confirmations from different providers can be tricky as there is no standard format used across the industry. The Trip Parser API makes it easy to extract information from different booking confirmation emails and compile it into a single structured JSON itinerary. The API can parse information from flight, hotel, rail and rental car confirmation mails. The API has three endpoints - the first creates a parsing request, the second checks the request status and the third retrieves the parsing results." }, "response": [] } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{access_token}}", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Market insights", "item": [ { "name": "Flight Most Traveled Destinations", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code\r", "pm.test(\"Response status code is 200\", function () {\r", " pm.response.to.have.status(200);\r", "});\r", "\r", "// Function to get header value by name with fallback\r", "function getHeaderValue(headerName, fallbackHeaderName) {\r", " let headers = pm.response.headers;\r", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r", "}\r", "\r", "// Log the specific headers\r", "console.log(\"Timestamp: \" + getHeaderValue('Date'));\r", "\r", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r", "console.log(headerName + \": \" + amaRequestId);\r", "\r", "\r", "// Set up\r", "// Get Response in variable\r", "const response = pm.response.json();\r", "\r", "// Get Query in variable\r", "let query = {};\r", "pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r", "\r", "// Create global variable\r", "let text_cities = \"\";\r", "let text_travelerScore = \"\";\r", "let text_flightScore = \"\";\r", "let repetition = 0;\r", "\r", "// process calculation only for succeful reply\r", "if (pm.response.status == \"OK\"){\r", "\r", " let cities = [];\r", " let travelerScore = [];\r", " let flightScore = [];\r", "\r", " repetition = Math.min(response.meta.count,5)\r", "\r", " // Get and order traffic data per month\r", " for (let i = 0; i < repetition; i++) {\r", " cities.push('\"' + response.data[i].destination + '\"');\r", " travelerScore.push(response.data[i].analytics.travelers.score);\r", " flightScore.push(response.data[i].analytics.flights.score);\r", " };\r", "\r", " // Convert to text to be used by the template variable\r", " text_cities = '[' + cities.join() + ']'\r", " text_travelerScore = '[' + travelerScore.join() + ']'\r", " text_flightScore = '[' + flightScore.join() + ']'\r", "}\r", "\r", "// Define visualizer template\r", "let template_success = `\r", "<table style=\"width:50%\">\r", " <tr>\r", " <th>\r", " <canvas id=\"travelerTraffic\"></canvas>\r", " <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r", " <script> \r", " const labels = ${text_cities}; \r", " const data = {\r", " labels: labels, \r", " datasets: [\r", " { \r", " label: \"Traveler score\", \r", " backgroundColor: \"rgba(0, 94, 184,0.4)\", \r", " borderColor: \"rgb(0, 94, 184)\", \r", " data: ${text_travelerScore},\r", " },\r", " { \r", " label: \"Flight score\", \r", " backgroundColor: \"rgba(206, 0, 88,0.4)\", \r", " borderColor: \"rgb(206, 0, 88)\", \r", " data: ${text_flightScore},\r", " }\r", " ] \r", " };\r", " const config = { \r", " type: \"radar\", \r", " data: data, \r", " options: {\r", " responsive: true,\r", " plugins: {\r", " legend: {\r", " position: 'top',\r", " },\r", " title: {\r", " display: true,\r", " text: 'TOP ${repetition} most traveled destination from ${query.originCityCode} in ${query.period}'\r", " },\r", " legend: {\r", " display: true\r", " },\r", " filler: {\r", " propagate: false\r", " }\r", " }\r", " } \r", " } \r", " </script> \r", " <script>\r", " const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config ) \r", " </script>\r", " </th>\r", " </tr>\r", "</table>\r", "`;\r", "\r", "let template_nodata = \"OUPS there is no data for this city or period\";\r", "\r", "let template_default = \"Sorry, we can't visualize\";\r", "\r", "// Set visualizer\r", "if (pm.response.status == \"OK\"){\r", " if (response.meta.count > 0){\r", " // When there is data, return a bar graph\r", " pm.visualizer.set(template_success, {\r", " response: pm.response.json()\r", " });\r", " }else{\r", " // when there is no data, return a message\r", " pm.visualizer.set(template_nodata, {\r", " response: pm.response.json()\r", " });\r", " }\r", "}else{\r", " // return a message when we can't visualise ( status =! 200 )\r", " pm.visualizer.set(template_default, {\r", " response: pm.response.json()\r", " });\r", "}" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/travel/analytics/air-traffic/traveled?originCityCode=MAD&period=2019-11&sort=analytics.travelers.score&max=10", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "travel", "analytics", "air-traffic", "traveled" ], "query": [ { "key": "originCityCode", "value": "MAD" }, { "key": "period", "value": "2019-11" }, { "key": "sort", "value": "analytics.travelers.score" }, { "key": "max", "value": "10" } ] }, "description": "The Flight Most Traveled Destinations REST/JSON API provides a list of the most popular flight destinations from a given origin during a specific period. This can help answer questions like \"Where are most people flying to from Paris during the month of September?\"" }, "response": [] }, { "name": "Flight Most Booked Destinations", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code\r", "pm.test(\"Response status code is 200\", function () {\r", " pm.response.to.have.status(200);\r", "});\r", "\r", "\r", "// Function to get header value by name with fallback\r", "function getHeaderValue(headerName, fallbackHeaderName) {\r", " let headers = pm.response.headers;\r", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r", "}\r", "\r", "// Log the specific headers\r", "console.log(\"Timestamp: \" + getHeaderValue('Date'));\r", "\r", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r", "console.log(headerName + \": \" + amaRequestId);\r", "\r", "// Set up\r", "// Get Response in variable\r", "const response = pm.response.json();\r", "\r", "// Get Query in variable\r", "let query = {};\r", "pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r", "\r", "// Create global variable\r", "let text_cities = \"\";\r", "let text_travelerScore = \"\";\r", "let text_flightScore = \"\";\r", "let repetition = 0;\r", "\r", "// process calculation only for succeful reply\r", "if (pm.response.status == \"OK\"){\r", "\r", " let cities = [];\r", " let travelerScore = [];\r", " let flightScore = [];\r", "\r", " repetition = Math.min(response.meta.count,5)\r", "\r", " // Get and order traffic data per month\r", " for (let i = 0; i < repetition; i++) {\r", " cities.push('\"' + response.data[i].destination + '\"');\r", " travelerScore.push(response.data[i].analytics.travelers.score);\r", " flightScore.push(response.data[i].analytics.flights.score);\r", " };\r", "\r", " // Convert to text to be used by the template variable\r", " text_cities = '[' + cities.join() + ']'\r", " text_travelerScore = '[' + travelerScore.join() + ']'\r", " text_flightScore = '[' + flightScore.join() + ']'\r", "}\r", "\r", "// Define visualizer template\r", "let template_success = `\r", "<table style=\"width:40%\">\r", " <tr>\r", " <th>\r", " <canvas id=\"travelerTraffic\"></canvas>\r", " <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r", " <script> \r", " const labels = ${text_cities}; \r", " const data = {\r", " labels: labels, \r", " datasets: [\r", " { \r", " label: \"Traveler score\", \r", " backgroundColor: \"rgba(0, 94, 184,0.4)\", \r", " borderColor: \"rgb(0, 94, 184)\", \r", " data: ${text_travelerScore},\r", " },\r", " { \r", " label: \"Flight score\", \r", " backgroundColor: \"rgba(206, 0, 88,0.4)\", \r", " borderColor: \"rgb(206, 0, 88)\", \r", " data: ${text_flightScore},\r", " }\r", " ] \r", " };\r", " const config = { \r", " type: \"radar\", \r", " data: data, \r", " options: {\r", " responsive: true,\r", " plugins: {\r", " legend: {\r", " position: 'top',\r", " },\r", " title: {\r", " display: true,\r", " text: 'TOP ${repetition} most booked destination from ${query.originCityCode} in ${query.period}'\r", " },\r", " legend: {\r", " display: true\r", " }\r", " }\r", " } \r", " } \r", " </script> \r", " <script>\r", " const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config ) \r", " </script>\r", " </th>\r", " </tr>\r", "</table>\r", "`;\r", "\r", "let template_nodata = \"OUPS there is no data for this city or period\";\r", "\r", "let template_default = \"Sorry, we can't visualize\";\r", "\r", "// Set visualizer\r", "if (pm.response.status == \"OK\"){\r", " if (response.meta.count > 0){\r", " // When there is data, return a bar graph\r", " pm.visualizer.set(template_success, {\r", " response: pm.response.json()\r", " });\r", " }else{\r", " // when there is no data, return a message\r", " pm.visualizer.set(template_nodata, {\r", " response: pm.response.json()\r", " });\r", " }\r", "}else{\r", " // return a message when we can't visualise ( status =! 200 )\r", " pm.visualizer.set(template_default, {\r", " response: pm.response.json()\r", " });\r", "}" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/travel/analytics/air-traffic/booked?originCityCode=NCE&period=2017-11", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "travel", "analytics", "air-traffic", "booked" ], "query": [ { "key": "originCityCode", "value": "NCE" }, { "key": "period", "value": "2017-11" } ] }, "description": "The Flight Most Booked Destinations REST / JSON API allows to find the most popular flight destinations from an origin during a flight period. This can help answer questions like \"Where are most people from Paris, in September, plan to go?\"" }, "response": [] }, { "name": "Flight Busiest Traveling Period", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code\r", "pm.test(\"Response status code is 200\", function () {\r", " pm.response.to.have.status(200);\r", "});\r", "\r", "\r", "// Function to get header value by name with fallback\r", "function getHeaderValue(headerName, fallbackHeaderName) {\r", " let headers = pm.response.headers;\r", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r", "}\r", "\r", "// Log the specific headers\r", "console.log(\"Timestamp: \" + getHeaderValue('Date'));\r", "\r", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r", "console.log(headerName + \": \" + amaRequestId);\r", "\r", "// Set up\r", "// Get Response in variable\r", "const response = pm.response.json();\r", "\r", "// Get Query in variable\r", "let query = {};\r", "pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r", "\r", "// Create global variable\r", "let text_TrafficPerMonth = \"\";\r", "let max_scale = 0;\r", "\r", "\r", "// process calculation only for succeful reply\r", "if (pm.response.status == \"OK\"){\r", "\r", " // Set all traffic to 0 to handle ongoing years or partial data\r", " let TrafficPerMonth = [];\r", " for (let i=0; i < 12; i++) {\r", " TrafficPerMonth.push(0)\r", " };\r", "\r", " // Get and order traffic data per month\r", " for (let i = 0; i < response.meta.count; i++) {\r", " period = response.data[i].period;\r", " month = parseInt(period.slice(-2)) - 1;\r", " traffic = response.data[i].analytics.travelers.score;\r", " TrafficPerMonth[month] = traffic;\r", " };\r", "\r", " // Convert to text to be used by the template variable\r", " text_TrafficPerMonth = '[' + TrafficPerMonth.join() + ']'\r", " max_scale = Math.max(...TrafficPerMonth) + 2\r", "}\r", "\r", "// Define visualizer template\r", "let template_success = `\r", "<table style=\"width:50%\">\r", " <tr>\r", " <th>\r", " <canvas id=\"travelerTraffic\"></canvas>\r", " <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r", " <script src=\"https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2\"></script>\r", " <script> \r", " const labels = [\r", " \"January\",\r", " \"February\", \r", " \"March\", \r", " \"April\", \r", " \"May\", \r", " \"June\", \r", " \"July\", \r", " \"August\", \r", " \"September\", \r", " \"October\", \r", " \"November\", \r", " \"December\"\r", " ]; \r", " const data = {\r", " labels: labels, \r", " datasets: [\r", " { \r", " label: \"Traveler score\", \r", " backgroundColor: \"rgba(0, 94, 184,0.4)\", \r", " borderColor: \"rgb(0, 94, 184)\", \r", " data: ${text_TrafficPerMonth},\r", " borderWidth: 2,\r", " borderRadius: 20,\r", " borderSkipped: false, \r", " }\r", " ] \r", " };\r", " const config = { \r", " type: \"bar\", \r", " data: data,\r", " plugins: [ChartDataLabels], \r", " options: {\r", " responsive: true,\r", " plugins: {\r", " legend: {\r", " position: 'top',\r", " display: false\r", " },\r", " title: {\r", " display: true,\r", " text: 'Traveler repartition for ${query.cityCode} in ${query.period}'\r", " },\r", " datalabels: {\r", " color: \"rgb(0, 94, 184)\",\r", " anchor: 'end',\r", " align: 'end',\r", " }\r", " },\r", " scales: {\r", " y: {\r", " min: 0,\r", " max: ${max_scale},\r", " }\r", " },\r", " } \r", " } \r", " </script> \r", " <script>\r", " const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config )\r", " </script\r", " </th>\r", " </tr>\r", "</table>\r", "`;\r", "\r", "let template_nodata = \"OUPS there is no data for this city or period\";\r", "\r", "let template_default = \"Sorry, we can't visualize\";\r", "\r", "// Set visualizer\r", "if (pm.response.status == \"OK\"){\r", " if (response.meta.count > 0){\r", " // When there is data, return a bar graph\r", " pm.visualizer.set(template_success, {\r", " response: pm.response.json()\r", " });\r", " }else{\r", " // when there is no data, return a message\r", " pm.visualizer.set(template_nodata, {\r", " response: pm.response.json()\r", " });\r", " }\r", "}else{\r", " // return a message when we can't visualise ( status =! 200 )\r", " pm.visualizer.set(template_default, {\r", " response: pm.response.json()\r", " });\r", "}" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/travel/analytics/air-traffic/busiest-period?cityCode=PAR&period=2017&direction=ARRIVING", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "travel", "analytics", "air-traffic", "busiest-period" ], "query": [ { "key": "cityCode", "value": "PAR" }, { "key": "period", "value": "2017" }, { "key": "direction", "value": "ARRIVING" } ] }, "description": "The Flight Busiest Traveling Period REST / JSON API allows to find the peak and off-peak travel period for a given city. This can help answer questions like \"When is it the cheapest to go to New York?\"" }, "response": [] } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{access_token}}", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] }, { "name": "Hotels", "item": [ { "name": "(Scenario)Basic Hotel Booking flow", "item": [ { "name": "Step 0: Authorization", "event": [ { "listen": "test", "script": { "exec": [ "var data = pm.response.json();", "pm.environment.set(\"access_token\", data.access_token);" ], "type": "text/javascript" } } ], "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "client_id", "value": "{{client_id}}", "type": "text" }, { "key": "client_secret", "value": "{{client_secret}}", "type": "text" }, { "key": "grant_type", "value": "client_credentials", "type": "text" } ] }, "url": { "raw": "https://test.api.amadeus.com/v1/security/oauth2/token", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "security", "oauth2", "token" ] }, "description": "To request an access token you need to send a POST request with the following body parameters to the authorization server: \n- \"grant_type\" with the value \"client_credentials\"\n- \"client_id\" with your API Key.\n- \"client_secret\" with your API Secret." }, "response": [] }, { "name": "Step 1: Find Hotels by city", "event": [ { "listen": "test", "script": { "exec": [ "// extract 'hotelIds' environment variable for first 10 hotels results", "", "let response = pm.response.json();", "var hotelIds = [];", "i = 0", "for (var i = 0; i < 5; i ++){", " hotelIds.push(response.data[i].hotelId);", "}", "pm.collectionVariables.set(\"hotelIds\", hotelIds);" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-city?cityCode=DEL", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "hotels", "by-city" ], "query": [ { "key": "radius", "value": "5", "description": "Maximum distance from the geographical coordinates express in defined units. The default radius is 5 KM.", "disabled": true }, { "key": "radiusUnit", "value": "KM", "description": "Unit of measurement used to express the radius. It can be either metric kilometer or imperial mile.", "disabled": true }, { "key": "chainCodes", "value": "", "description": "Array of hotel chain codes. Each code is a string consisted of 2 capital alphabetic characters.", "disabled": true }, { "key": "amenities", "value": "", "description": "List of amenities", "disabled": true }, { "key": "ratings", "value": "", "description": "Hotel stars. Up to four values can be requested at the same time in a comma separated list.", "disabled": true }, { "key": "hotelSource", "value": "ALL", "description": "Hotel source with values BEDBANK for aggregators, DIRECTCHAIN for GDS/Distribution and ALL for both", "disabled": true }, { "key": "cityCode", "value": "DEL" } ] } }, "response": [] }, { "name": "Step 2: Hotel Offers Search", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or property code not found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " pm.collectionVariables.set(\"hotelOfferId\", pm.response.json().data[0].offers[0].id);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].code).to.be.oneOf([3237, 3664, 10604, 3494, 1257]);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v3/shopping/hotel-offers?hotelIds={{hotelIds}}&adults=1", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v3", "shopping", "hotel-offers" ], "query": [ { "key": "hotelIds", "value": "{{hotelIds}}" }, { "key": "adults", "value": "1" } ] }, "description": "Search for hotels and retrieve availability and rates information" }, "response": [] }, { "name": "Step 3: Hotel Booking v1", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"offerId\": \"{{hotelOfferId}}\",\n \"guests\": [\n {\n \"id\": 1,\n \"name\": {\n \"title\": \"MR\",\n \"firstName\": \"BOB\",\n \"lastName\": \"SMITH\"\n },\n \"contact\": {\n \"phone\": \"+33679278416\",\n \"email\": \"bob.smith@email.com\"\n }\n }\n ],\n \"payments\": [\n {\n \"id\": 1,\n \"method\": \"creditCard\",\n \"card\": {\n \"vendorCode\": \"VI\",\n \"cardNumber\": \"4151289722471370\",\n \"expiryDate\": \"2023-08\"\n }\n }\n ],\n \"rooms\": [\n {\n \"guestIds\": [\n 1\n ],\n \"paymentId\": 1,\n \"specialRequest\": \"I will arrive at midnight\"\n }\n ]\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/booking/hotel-bookings", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "hotel-bookings" ] }, "description": "The Hotel Booking REST/JSON API is an open API that allows you to book the best hotel offers you have searched from a wide choice of providers." }, "response": [] } ] }, { "name": "Hotel List by Id", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or PROPERTY CODE NOT FOUND\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].code).to.equal(3237);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-hotels?hotelIds={{hotelIds}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "hotels", "by-hotels" ], "query": [ { "key": "hotelIds", "value": "{{hotelIds}}", "description": "Amadeus unique hotel code. Several hotelId can be entered using a coma." } ] } }, "response": [] }, { "name": "Hotel List by Geocode", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-geocode?latitude=41.397158&longitude=2.160873", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "hotels", "by-geocode" ], "query": [ { "key": "latitude", "value": "41.397158", "description": "The latitude of the searched geographical point expressed in geometric degrees." }, { "key": "longitude", "value": "2.160873", "description": "The longitude of the searched geographical point expressed in geometric degrees." }, { "key": "radius", "value": "5", "description": "Maximum distance from the geographical coordinates expressed in defined units. The default value is 5 KM.", "disabled": true }, { "key": "radiusUnit", "value": "KM", "description": "Unit of measurement used to express the radius. It can be either metric kilometer or imperial mile.", "disabled": true }, { "key": "chainCodes", "value": "", "description": "Array of hotel chain codes. Each code is a string consisted of 2 capital alphabetic characters", "disabled": true }, { "key": "amenities", "value": "", "description": "List of amenities.\n\n", "disabled": true }, { "key": "ratings", "value": "", "description": "Hotel stars. Up to four values can be requested at the same time in a comma separated list.\n\n", "disabled": true }, { "key": "hotelSource", "value": "ALL", "description": "Hotel source with values BEDBANK for aggregators, DIRECTCHAIN for GDS/Distribution and ALL for both.\n\n", "disabled": true } ] } }, "response": [] }, { "name": "Hotel List by City", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "", "", "// extract 'hotelIds_response' environment variable for first 5 hotels results", "let response = pm.response.json();", "var hotelIds = [];", "i = 0", "for (var i = 0; i < 5; i ++){", " hotelIds.push(response.data[i].hotelId);", "}", "pm.collectionVariables.set(\"hotelIds\", hotelIds);" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-city?cityCode=BLR", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "hotels", "by-city" ], "query": [ { "key": "radius", "value": "5", "description": "Maximum distance from the geographical coordinates express in defined units. The default radius is 5 KM.", "disabled": true }, { "key": "radiusUnit", "value": "KM", "description": "Unit of measurement used to express the radius. It can be either metric kilometer or imperial mile.", "disabled": true }, { "key": "chainCodes", "value": "", "description": "Array of hotel chain codes. Each code is a string consisted of 2 capital alphabetic characters.", "disabled": true }, { "key": "amenities", "value": "", "description": "List of amenities", "disabled": true }, { "key": "ratings", "value": "", "description": "Hotel stars. Up to four values can be requested at the same time in a comma separated list.", "disabled": true }, { "key": "hotelSource", "value": "ALL", "description": "Hotel source with values BEDBANK for aggregators, DIRECTCHAIN for GDS/Distribution and ALL for both", "disabled": true }, { "key": "cityCode", "value": "BLR" } ] } }, "response": [] }, { "name": "Hotel Search", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or property code not found\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " pm.collectionVariables.set(\"hotelOfferId\", pm.response.json().data[0].offers[0].id);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].code).to.be.oneOf([3237, 3664, 10604, 3494, 1257]);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v3/shopping/hotel-offers?hotelIds={{hotelIds}}&adults=1", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v3", "shopping", "hotel-offers" ], "query": [ { "key": "hotelIds", "value": "{{hotelIds}}" }, { "key": "adults", "value": "1" } ] }, "description": "Search for hotels and retrieve availability and rates information" }, "response": [] }, { "name": "Hotel Search Offer Information", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or invalid format\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " var request = pm.request;", "", " if (responseCode === 200) {", " pm.expect(responseCode).to.equal(200);", " } else if (responseCode === 400) {", " pm.expect(data.errors[0].code).to.be.oneOf([477,12416]);", " // Add more validations for other properties as needed", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v3/shopping/hotel-offers/{{hotelOfferId}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v3", "shopping", "hotel-offers", "{{hotelOfferId}}" ] }, "description": "Get room and rate details." }, "response": [] }, { "name": "Hotel Booking v1", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or 201\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200 || responseCode === 201) {", " pm.expect(responseCode).to.be.oneOf([200, 201]);", " // Add any other checks you need for a successful response here", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json", "name": "Content-Type", "type": "text" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"offerId\": \"{{hotelOfferId}}\",\n \"guests\": [\n {\n \"id\": 1,\n \"name\": {\n \"title\": \"MR\",\n \"firstName\": \"BOB\",\n \"lastName\": \"SMITH\"\n },\n \"contact\": {\n \"phone\": \"+33679278416\",\n \"email\": \"bob.smith@email.com\"\n }\n }\n ],\n \"payments\": [\n {\n \"id\": 1,\n \"method\": \"creditCard\",\n \"card\": {\n \"vendorCode\": \"VI\",\n \"cardNumber\": \"4111111111111111\",\n \"expiryDate\": \"2026-08\"\n }\n }\n ],\n \"rooms\": [\n {\n \"guestIds\": [\n 1\n ],\n \"paymentId\": 1,\n \"specialRequest\": \"I will arrive at midnight\"\n }\n ]\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v1/booking/hotel-bookings", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "booking", "hotel-bookings" ] }, "description": "The Hotel Booking REST/JSON API is an open API that allows you to book the best hotel offers you have searched from a wide choice of providers." }, "response": [] }, { "name": "Hotel Booking v2", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200 or 201\", function () {", " var responseCode = pm.response.code;", " var data = pm.response.json();", " if (responseCode === 200 || responseCode === 201) {", " pm.expect(responseCode).to.be.oneOf([200, 201]);", " pm.collectionVariables.set(\"hotelOrderId\", data.data.id);", " var hotelBookings = data.data.hotelBookings;", " for (var i = 0; i < hotelBookings.length; i++) {", " pm.collectionVariables.set(\"hotelBookingId\" + (i + 1), hotelBookings[i].id);", " }", " // Add any other checks you need for a successful response here", " } else {", " pm.expect.fail(\"Response did not meet any of the expected conditions\");", " }", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"data\": {\n \"type\": \"hotel-order\",\n \"guests\": [\n {\n \"tid\": 1,\n \"title\": \"MR\",\n \"firstName\": \"BOB\",\n \"lastName\": \"SMITH\",\n \"phone\": \"+33679278416\",\n \"email\": \"bob.smith@email.com\"\n }\n ],\n \"travelAgent\": {\n \"contact\": {\n \"email\": \"bob.smith@email.com\"\n }\n },\n \"roomAssociations\": [\n {\n \"guestReferences\": [\n {\n \"guestReference\": \"1\"\n }\n ],\n \"hotelOfferId\": \"{{hotelOfferId}}\"\n }\n ],\n \"payment\": {\n \"method\": \"CREDIT_CARD\",\n \"paymentCard\": {\n \"paymentCardInfo\": {\n \"vendorCode\": \"VI\",\n \"cardNumber\": \"4151289722471370\",\n \"expiryDate\": \"2026-08\",\n \"holderName\": \"BOB SMITH\"\n }\n }\n }\n }\n}" }, "url": { "raw": "https://test.api.amadeus.com/v2/booking/hotel-orders", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "booking", "hotel-orders" ] }, "description": "The Hotel Booking REST/JSON API is an open API that allows you to book the best hotel offers you have searched from a wide choice of providers." }, "response": [] }, { "name": "Hotel Ratings ", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v2/e-reputation/hotel-sentiments?hotelIds=ELONMFS,ADNYCCTB,XXXYYY01", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v2", "e-reputation", "hotel-sentiments" ], "query": [ { "key": "hotelIds", "value": "ELONMFS,ADNYCCTB,XXXYYY01" } ] }, "description": "This API provides hotel ratings based on automated sentiment analysis algorithm applied on the online reviews" }, "response": [] }, { "name": "Hotel Name Autocomplete", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotel?keyword=PARI&subType=HOTEL_LEISURE", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "reference-data", "locations", "hotel" ], "query": [ { "key": "keyword", "value": "PARI" }, { "key": "subType", "value": "HOTEL_LEISURE" } ] }, "description": "The Hotel Name Autocomplete API enables you to autocomplete a hotel search field and help your users quickly find their desired hotel. For a given text string, the API will provide a list of up to 20 hotels whose names most closely match." }, "response": [] } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{access_token}}", "type": "string" } ] } }, { "name": "Itinerary management", "item": [ { "name": "Trip Purpose Prediction", "event": [ { "listen": "test", "script": { "exec": [ "// Test for status code", "pm.test(\"Response status code is 200\", function () {", " pm.response.to.have.status(200);", "});", "", "", "// Function to get header value by name with fallback", "function getHeaderValue(headerName, fallbackHeaderName) {", " let headers = pm.response.headers;", " return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';", "}", "", "// Log the specific headers", "console.log(\"Timestamp: \" + getHeaderValue('Date'));", "", "let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');", "let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');", "console.log(headerName + \": \" + amaRequestId);", "" ], "type": "text/javascript", "packages": {} } } ], "request": { "method": "GET", "header": [], "url": { "raw": "https://test.api.amadeus.com/v1/travel/predictions/trip-purpose?originLocationCode=LON&destinationLocationCode=AMS&departureDate={{departureDate}}&returnDate={{returnDate}}", "protocol": "https", "host": [ "test", "api", "amadeus", "com" ], "path": [ "v1", "travel", "predictions", "trip-purpose" ], "query": [ { "key": "originLocationCode", "value": "LON" }, { "key": "destinationLocationCode", "value": "AMS" }, { "key": "departureDate", "value": "{{departureDate}}" }, { "key": "returnDate", "value": "{{returnDate}}" } ] }, "description": "It allows developers to forecast traveler purpose, Business or Leisure, together with the probability in the context of search & shopping." }, "response": [] } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{access_token}}", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ], "variable": [ { "key": "url", "value": "https://test.api.amadeus.com" }, { "key": "todayDate", "value": "" }, { "key": "departureDate", "value": "" }, { "key": "returnDate", "value": "" }, { "key": "flightOfferData", "value": "" }, { "key": "flightOfferPriceData", "value": "" }, { "key": "flightOrderId", "value": "" }, { "key": "todayDateTime", "value": "" }, { "key": "startDateTime", "value": "" }, { "key": "transferOfferId", "value": "" }, { "key": "hotelIds", "value": "" }, { "key": "hotelOfferId", "value": "" }, { "key": "hotelOrderId", "value": "" }, { "key": "hotelBookingId1", "value": "" }, { "key": "hotelBookingId2", "value": "" }, { "key": "jobId", "value": "" } ] }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HaroldLeo/google-flights-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server